πŸ«› Lightbeans Update | Metallic and Roughness auto-applied in SketchUp 2025+ Download
  • Ruby equivalent for edit/delete guides?

    3
    0 Votes
    3 Posts
    152 Views
    TIGT
    I've made various - search for 'ConsDeleteContext.rb' as one set for a context-menu right-click that differentiate between points and lines and all or just in active context etc... 'Guides' are often referred to as 'Construction' Lines/Points... their 'old name'... Search for those too...
  • Frustrated with rubies

    47
    0 Votes
    47 Posts
    5k Views
    R
    @baz said: @unknownuser said: Have you looked into Organizer? Thanks Rick, tho it seems a bit complicated for my poor brain. I can see myself getting in lots of trouble trying to organise subfolders, especially considering the apparent dependency of various rubies on each other. baz Two things: Organizer can do a simple test and notify you if you move any required files, letting you know you need to put them back in the Plugins folder. Also, creating a backup of your Plugins folder prior to using Organizer can save you some headaches. I do offer support for all my scripts, so if you have questions, just ask
  • Catching Console errors upon crash

    6
    0 Votes
    6 Posts
    254 Views
    thomthomT
    It's odd that it happens on the second File->New as in the first one, nothing is done. And yes, I do have quite a few observers and references. Though, I thought I was resetting everything onNewModel. I think I'll have to release a developers alpha, see if anyone can spot the culprit in my code. What I'm building is a plugin that allows cutout components to also cut through an opposite faced face. It does taht by creating a new invisible cutout. That's the simple stuff. The complicated stuff is making sure the extra cutout syncs with move,rotate,edits etc. That required allot more work than expected. Especially since I ran into so many bugs in the SU Ruby API requiring workaround upon workaround.
  • DefinitionObserver doesn't trigger

    16
    0 Votes
    16 Posts
    2k Views
    thomthomT
    I looks like it's some wires crossed in the backend. I made a typo when I wanted a DefinitionsObserver, where I instead wrote DefinitionObserver. But the code still worked. So while the DefinitionObserver doesn't trigger the events it's supposed to, it triggers all of DefinitionsObserver's events. Example code: class TestDefinitionsObserver < Sketchup;;DefinitionsObserver def onComponentPropertiesChanged(definitions, definition) puts 'DefinitionsObserver - onComponentPropertiesChanged' end def onComponentRemoved(definitions, definition) puts 'DefinitionsObserver - onComponentRemoved' end def onComponentAdded(definitions, definition) puts 'DefinitionsObserver - onComponentAdded' end end class TestDefinitionObserver < Sketchup;;DefinitionObserver def onComponentPropertiesChanged(definitions, definition) puts 'DefinitionObserver - onComponentPropertiesChanged' end def onComponentRemoved(definitions, definition) puts 'DefinitionObserver - onComponentRemoved' end def onComponentAdded(definitions, definition) puts 'DefinitionObserver - onComponentAdded' end end module TestDefOb def self.test r = Sketchup.active_model.definitions.add_observer(TestDefinitionObserver.new) puts 'Sketchup;;DefinitionObserver - ' + r.to_s r = Sketchup.active_model.definitions.add_observer(TestDefinitionsObserver.new) puts 'Sketchup;;DefinitionsObserver - ' + r.to_s end end Type TestDefOb.test in the console and add/remove some component definitions. Notice how both observers trigger.
  • Drawing line based on fed coordinates

    4
    0 Votes
    4 Posts
    597 Views
    TIGT
    @jderekito said: Thanks TIG, The defaulting to inches explains it. For now I am just trying to draw a single line. If I just drawing a single line does it still need the face and edges. Thanks again for you assistance as I am still learning my way around SU. Derek 'Line' and 'Edge' are interchangeable in this context... A line [edge] is just a line. edge=entities.add_line(pt1,pt2) for one line, edges=add_edges(pt1,pt2,pt3); edge0=edges[0]; edge1=edges[1] for multiple lines [edges] strung between the list of points - if you use .add_edges you get an array of edges - if there's only one you still need to use edges[0] to find it, if you .add_line you get just the one edge [line]. A face needs at least 3 edges with common vertices. More edges also have to be coplanar. face=entities.add_face(xxxxx) takes a 'list/array of points', it then makes new edges with a new face, or a 'list/array of edges', or a 'closed-curve' - it then makes a new face to these existing edges So there are several ways: Make the points and then make the edges and face in one go - probably what you want - face=entities.add_face(pointsList) Make the edges from the points and add the face to them - useful if some edges pre-exist - edges=entities.add_edges(pointsList); face=entities.add_face(edges) Make the edges and then 'find_faces' that they can have - useful if it's a set of 3D edges - edges=entities.add_edges(pointsList); edges[0].find_faces it returns only the number of faces that it's made - if you want to find the face itself then you then need to use face=edges[0].faces[0] additionally...
  • Soap Skin and Bubble

    7
    0 Votes
    7 Posts
    1k Views
    pilouP
    Cool news Here the link [image: Wi5Y_bubble1.jpg]
  • Moving children parallel to parent components

    6
    0 Votes
    6 Posts
    363 Views
    TIGT
    Why not write us one...
  • Fastest way to select component by definition.name

    10
    0 Votes
    10 Posts
    2k Views
    H
    Hello TIG, Again many thanks for the hint. sel_def.instances[0].add_entities(MySubCompArray) does the job for me. Now I can use the imported dummy-block from autocad as the hierarchy-master instead of creating a separate new group. Will keep the outliner structure more readable. I also use now Jim's togglewindows.rb to keep the outliner close during execution.
  • How do you catch &quot;Make Unique&quot;?

    3
    0 Votes
    3 Posts
    201 Views
    thomthomT
    The onContentsModified event is broken...
  • Removing observers

    4
    0 Votes
    4 Posts
    205 Views
    thomthomT
    Ok. Found the problem. I was using model.active_path to cache the last path. When the last path was the model itself it'd return an empty array.
  • Selection Tool that works like the Eraser?

    13
    0 Votes
    13 Posts
    973 Views
    fredo6F
    @aceshigh said: well, I am certainly getting depressed for the lack of the plugin Maybe this could help you to fill 'un-depressed' (and therefore 'pressed') http://www.sketchucation.com/forums/scf/viewtopic.php?f=180&t=18916#p155058 Fredo
  • HELP with COMPONENTS LIST

    9
    0 Votes
    9 Posts
    312 Views
    TIGT
    NO. Use Plugins >> Component Report++++
  • Help with hyperlinks

    10
    0 Votes
    10 Posts
    9k Views
    H
    Adam, Thanks for the script. I wasn't aware of Sketchup.open_file(url). Does it open a new instance or does it replace the open file?
  • Ruby on MAC

    2
    0 Votes
    2 Posts
    184 Views
    jeff hammondJ
    Macintosh HD/Library/Application Support/Google SketchUp 7/SketchUp/plugins
  • Add DC-Attribut to group not show up

    4
    0 Votes
    4 Posts
    216 Views
    TIGT
    Unfortunately, as you say, a group is not a component ! The group.make_unique is 'deprecated' BUT it works till it's fixed by Google... Why don't you make the group into a component, THEN you can probably use it as desired - inst=group.to_component - returns its instance OR defn=group.to_component.definition - returns its definition if you want to add to that... OR instn=defn.instances[0]to return what you just 'componentified' from the group...
  • How to launch applications on Mac with Ruby?

    10
    0 Votes
    10 Posts
    561 Views
    TIGT
    Works fine on my PC with Vista. Opens an app (.exe) or a file with it's assigned app... Puzzling...
  • Group components from array

    13
    0 Votes
    13 Posts
    597 Views
    H
    @unknownuser said: Ruby is kind of cool in that you can increment Strings. Thanks Jim for the tip. In this case I can not use it, since my block-numbering-steps comes from the imported autocad-blocknames. But maybe it gets usefull in the future. @unknownuser said: Do whatever works for you best... Thanks again TIG. Hans-Peter
  • Turn component into non-editable DC

    2
    0 Votes
    2 Posts
    205 Views
    H
    The sample 'Make Sang Red' from here: http://www.sketchucation.com/forums/scf/viewtopic.php?f=180&t=17888&p=145120&hilit=Make+Sang+Red#p145120 might help: # Add a new configurable option to Sang. # (Any attribute that starts with an underscore # is a "meta attribute" that describes behavior.) sang_def.set_attribute 'dynamic_attributes', 'weight', '145' sang_def.set_attribute 'dynamic_attributes', '_weight_label', 'weight' sang_def.set_attribute 'dynamic_attributes', '_weight_formlabel', 'My Weight' sang_def.set_attribute 'dynamic_attributes', '_weight_units', 'STRING' sang_def.set_attribute 'dynamic_attributes', '_weight_access', 'TEXTBOX' Not sure if this would enough to make a normal component into a DC! Will try.
  • ToolTip and help line ?

    16
    0 Votes
    16 Posts
    567 Views
    pilouP
    Oh! Deception So translator must be very brief
  • Call to Mac users for script portability

    101
    0 Votes
    101 Posts
    6k Views
    D
    Fredo, did the pic come?? i'll re-attach. freeScale. bottom box after TopMenu your delightful scripts, when I can download them (a problem with this site), and get them in the right place (my fault) are fantastic to use on the Mac, my comment was more about if any of the earlier ones had been absorbed into FreeScale or Pushpull, or outdated by SU7, etc.. then I will not try to find them now. cheers john [image: oPgQ_monpm2.jpg]

Advertisement