🏢 PlaceMaker | 25% off for February including new Google Earth data imports! Learn more
  • RegEx fun.... not.... :(

    7
    0 Votes
    7 Posts
    346 Views
    Dan RathbunD
    @thomthom said: But I just wanted to understand Regexp better - to why I could not do what I tried to do. I thot I explained it. Your first example, returns the position of a match, IF it occurs using =~ /(foo|bar)/ ... which is an integer index. In contrast, both match() methods return a MatchData object. @thomthom said: So it's not possible to do what I intended with Regexp? ... BUT you then went on to say what you wished was to have the matched numerical string returned, so let me simplify the code (the secret is the $+ global pattern matching variable): # define a Regexp rx = /(\*\s*(d+)|(d+)\s*\*)/ rx.match('* 15') $+.to_i >> 15 rx.match('15 *') $+.to_i >> 15
  • Making identical groups into a shared component.

    4
    0 Votes
    4 Posts
    738 Views
    Al HartA
    I see you have addressed the "Definition of a group" in another thread: http://forums.sketchucation.com/viewtopic.php?f=180&t=19765 It looks like I may have some luck using: definition = group.entities.parent to get the definition, and definition.instances to locate the groups which use the same definition. My client mentioned there was already a ruby to convert groups to components. Did you write it, or do you, (or anyone), know where it is? [Edit: It looks like I am looking for: Selection Toys. I will try to find it]
  • Sketchup front back face

    5
    0 Votes
    5 Posts
    780 Views
    Dan RathbunD
    Try posting to the C++ SDK forum: http://groups.google.com/group/su-sdk-fileshare/topics
  • View.draw2d adds lots of bad lines?

    8
    0 Votes
    8 Posts
    407 Views
    TIGT
    With draw2d if the user orbits/pans and the draw isn't updated don't you get weird effects? Using draw.line would allow users to move around with colored lines overlaying the geometry consistently without need to redraw ?
  • Film & Stage (Advanced Camera Tools) Plugin Added Methods

    7
    0 Votes
    7 Posts
    980 Views
    Dan RathbunD
    I don't find a specific forum for discussing Advanced Camera Tools (here or at Googlegroups.) If SCF had a forum, where would it be put ? .. under Extensions & Applications Discussions or under SketchUp Discussions
  • Interest in a Networking Sockets Workaround

    29
    0 Votes
    29 Posts
    5k Views
    Dan RathbunD
    Sorry... had the link in my previous post pointing to the C sourcecode archive. (Corrected links in original post.) Ruby v1.8.6-p287 Windows One-Click Installer (self-extracting zip installer.)
  • Attribute data size limit?

    6
    0 Votes
    6 Posts
    356 Views
    Didier BurD
    Hi TT, I was speaking of an own object type (array of parameters for instance), not SU entities or objects.
  • Bug with TAB character in menu (SU8)

    10
    0 Votes
    10 Posts
    490 Views
    A
    @unknownuser said: ... Did you log a bug to the SU Site or should I do it? Fredo You can do it, because I don't know how to do it.
  • Smooth Curve

    3
    0 Votes
    3 Posts
    377 Views
    K
    Absolutely!!! I would like to be able to start with either an ArcCurve, or just a curve. I have Fredo's bezier curve plugin installed, but I don't know how I would use it in this instance. Can you walk me through the steps a bit more? Thanks so much, -- Karen EDIT: Oh, wait, the polyline divider is what does it. I think I can take it from here. Thanks for the clue.
  • Inherit from Sketchup Classes

    13
    0 Votes
    13 Posts
    1k Views
    K
    @pierreden said: I would love to be able to make my own My::Point3d class with additional methods, and still be able to use My::Point3d together with Geom::Point3d without errors. The other option is to extend an instance of a Point3d... module YourPoint3d attr_accessor ;your_var1, ;your_var2 def your_def1 end def your_def2 end end p = Geom;;Point3d.new p.extend YourPoint3d p.your_var1 = 20 This gives your particular Point3d additional methods and attributes without messing with the Point3d class at all. -- Karen
  • Writing Ruby Console messages to a text file

    9
    0 Votes
    9 Posts
    4k Views
    D
    Hi Al, Thanks - will do.
  • A bit scary...

    3
    0 Votes
    3 Posts
    271 Views
    AdamBA
    Noticed on a Mac - but no reason to think the same solution wouldn't be applied to both platforms. I honestly can't decide whether its inspired pragmatic engineering or completely bonkers. @driven said: have you tried this http://www.gremedy.com/downloadMac.php Of course..whaddaya think I am! Not as good as Pix etc but certainly a step up from OSX "OpenGL Profiler" Adam
  • UDP interface

    2
    0 Votes
    2 Posts
    473 Views
    M
    ben, I just posted a simple example of a UDP interface here: http://forums.sketchucation.com/viewtopic.php?f=180&t=31545&start=15#p326273 Also, before I started working on UDP stuff I wrote a ruby script for the wiimote and sketchup to do head tracking similar to what Johny Lee was doing years ago.http://johnnylee.net/projects/wii/ Back when I wrote it, I was using GlovePIE with an Output to file script that I think GlovePIE came with. In sketchup I was just constantly seeking to the end of that file to get the most recent wiimote data. It worked but I never felt it was the best way to do it. -Mike
  • Get rid of the Tilda..

    2
    0 Votes
    2 Posts
    249 Views
    TIGT
    The tilde ~ is an approximation indicator... so 1.4mm >>> ~1mm IF your number of dp's in the Model > Units is set too low. You get this using .to_l etc. You can always get a distance or xyx value in inches [the default base units] and convert them to something else with methods like .to_mm... You can also convertfloars to a fixed number of dp's using sprintf() etc...
  • Plugin DLL

    29
    0 Votes
    29 Posts
    7k Views
    Dan RathbunD
    New 'old' info. I found the old thread where we discussed this over on the Ruby Installer forum. Luis says on Windows that .so files are just renamed .dll files. See: ruby uses .so files?
  • How do I move a Group of entities on their own?

    5
    0 Votes
    5 Posts
    437 Views
    S
    Now the Penny is dropping! Slowly... After a day going round in circles, I've had a productive evening... For absolute Newbies, here are some Group transformations (thanks yet again TIG): # 30/04/2011 SJH_Groups_Add_v03.rb puts "Running... SJH_Groups_Add" require 'sketchup.rb' model = Sketchup.active_model entities = model.entities #entities = model.active_entities selection = model.selection # Set some length variables rl = 1 gl = 1 bl = 1 rlmid = rl*0.5 glmid = gl*0.5 blmid = bl*0.5 # To convert to SU current Model units rl = rl.to_s.to_l gl = gl.to_s.to_l bl = bl.to_s.to_l rlmid = rlmid.to_s.to_l glmid = glmid.to_s.to_l blmid = blmid.to_s.to_l # Create Face points array fpts = [] fpts[0] = [0, 0, 0] fpts[1] = [rl, 0, 0] fpts[2] = [rl, gl, 0] fpts[3] = [0, gl, 0] # Create String and counter for incrementing group names sjhname = "SJHGroup" groupcount = 0 # ---------- Start Main Code ---------- groupcount+= 1 groupname = sjhname + groupcount.to_s # Create a Group - mygroup1 mygroup1 = [] # Create an empty array to prevent Bug Splat! mygroup1 = entities.add_group # Make the array a Group Entities class gentities1 = mygroup1.entities # Create an array of the Entities in mygroup mygroup1.name = groupname # Change the Group name face = gentities1.add_face fpts # Add a face to gentities1 pullface = face.pushpull -bl # Do a push/pull to the face tcoordinates = [rlmid, glmid, blmid] # Set coordinates for text tpoint = Geom;;Point3d.new tcoordinates # Create a 3d point for text mytext = gentities1.add_text "#{groupname}", tpoint # Add a text label model.close_active # Close mygroup1 # Closed the Group UI.messagebox("mygroup1 added. What's next?") # User Message to see what happened! # Move everything in the model entlen = entities.length transform = Geom;;Transformation.new([(rl*2),0,0]) for e in (0... entlen) entities.transform_entities(transform, entities[e]) end # Select mygroup1 #selection.add(mygroup1) UI.messagebox("All entities moved. What's next?") # User Message to see what happened! groupcount+= 1 groupname = sjhname + groupcount.to_s # Create a Group - mygroup2 mygroup2 = [] # Create an empty array to prevent Bug Splat! mygroup2 = entities.add_group # Make the array a Group Entities class gentities2 = mygroup2.entities # Create an array of the Entities in mygroup mygroup2.name = groupname # Change the Group name face = gentities2.add_face fpts # Add a face to gentities2 pullface = face.pushpull -bl # Do a push/pull to the face tcoordinates = [rlmid, glmid, blmid] # Set coordinates for text tpoint = Geom;;Point3d.new tcoordinates # Create a 3d point for text mytext = gentities2.add_text "#{groupname}", tpoint # Add a text label model.close_active # Close mygroup2 # Closed the Group UI.messagebox("mygroup2 added. What's next?") # User Message to see what happened! # Move everything in the model entlen = entities.length transform = Geom;;Transformation.new([(rl*2),0,0]) for e in (0... entlen) entities.transform_entities(transform, entities[e]) end # Select mygroup #selection.add(mygroup2) UI.messagebox("All entities moved. What's next?") # User Message to see what happened! # Move (mygroup1) ONLY # Try making it as a proper transformation (TIG 30/04/2011) pt=Geom;;Point3d.new(rl*2, 0, 0) tr=Geom;;Transformation.new(pt) mygroup1.transform!(tr) UI.messagebox("mygroup1 moved by Point3d. What's next?") # User Message to see what happened! # Move (mygroup2) ONLY # To move by a set vector use (TIG 30/04/2011) vt=Geom;;Vector3d.new(-rl*2, 0, 0) tr=Geom;;Transformation.translation(vt) mygroup2.transform!(tr) UI.messagebox("mygroup2 moved by Vector3d. What's next?") # User Message to see what happened! # Rotate (mygroup1) along Red axis pt=Geom;;Point3d.new(0, 0, 0) vt=Geom;;Vector3d.new(rl, 0, 0) an=45.degrees tr=Geom;;Transformation.rotation(pt,vt,an) mygroup1.transform!(tr) UI.messagebox("mygroup1 rotated along Red axis. What's next?") # User Message to see what happened! # Rotate (mygroup1) along Green axis pt=Geom;;Point3d.new(rl*6, 0, 0) vt=Geom;;Vector3d.new(0, gl, 0) an=45.degrees tr=Geom;;Transformation.rotation(pt,vt,-an) mygroup1.transform!(tr) UI.messagebox("mygroup1 rotated along Green axis. What's next?") # User Message to see what happened! # Scale (mygroup2) uniform about origin x3 tr=Geom;;Transformation.scaling(3) mygroup2.transform!(tr) UI.messagebox("mygroup2 scaled uniform from origin. What's next?") # User Message to see what happened! # Scale (mygroup2) uniform about origin tr=Geom;;Transformation.scaling(0.3) mygroup2.transform!(tr) UI.messagebox("mygroup2 scaled uniform from origin. What's next?") # User Message to see what happened! # Scale (mygroup2) non-uniform about origin tr=Geom;;Transformation.scaling(3, 2, 1.5) mygroup2.transform!(tr) UI.messagebox("mygroup2 scaled non-uniform from origin. The End! ;o\)") # User Message to see what happened! # ---------- End Main Code ---------- puts("\n END \n..........") # end of SJH_Groups_Add.rb Attached is a pic of my moved, rotated and scaled Groups. Doesn't seem much but this morning that would have been a pic of a Bug Splat! Happy, happy! [image: wfVi_20110430_Capture4-Rotate-Scale.JPG]
  • Logging SketchUp events?

    2
    0 Votes
    2 Posts
    301 Views
    thomthomT
    Use the tools observer: http://code.google.com/apis/sketchup/docs/ourdoc/toolsobserver.html and selection observer: http://code.google.com/apis/sketchup/docs/ourdoc/selectionobserver.html to gather the information of the user's interaction.
  • Help in SketchUp UI research

    3
    0 Votes
    3 Posts
    322 Views
    A
    Thanks Jim, Web dialogues worked great! Thank you!
  • Multi-language plugin

    6
    0 Votes
    6 Posts
    483 Views
    TIGT
    Sketchup tried it... BUT many of us prefer our own methods...
  • Plugins menu not shown or in different language

    2
    0 Votes
    2 Posts
    168 Views
    thomthomT
    Yes - one always use the English names regardless of what locale the user might have. The Plugins menu is only mission when no plugins has added any menus to it.

Advertisement