SketchUcation Plugin Store

 

 

[Plugin] Set Arc and Circle Defaults 1.1 2011-09-03

[Plugin] Set Arc and Circle Defaults 1.1 2011-09-03

Postby openhatch » Thu Sep 01, 2011 11:45 pm

Name : SetArcCircleDefaults

Description : When SketchUp loads, this script selects the circle tool and changes the number of sides to the circle (to predifined user preference), then selects the arc tool and changes the segments in the arc (also to user preference). This way it effectively sets their "defaults" (to lower or higher numbers) according to user preference. As this script comes "shipped", it sets the sides of a circle to 12, and the segments in an arc to 6.

(The defaults for sides of a circle and segments in an arc could be directly set via SketchUp's Ruby API.. if it let you do that. It doesn't as of SU V8.)

This script requires the eventrelay plugin (windows only at this writing), or EventRelay.dll, and includes a version of that .dll known at this writing to work. eventrelay is available at http://code.google.com/p/eventrelay/

Author : Alex Hall (c) 2011
http://blog.openhatch.net/contact/
Released under the GNU GPL v2

Installation: At this writing, and unless eventrelay is ported to the Macintosh, this plugin is for Windows only. Copy these files into the Sketchup Plugins directory:

    EventRelay.dll
    SetArcCircleDefaults.rb
    setArcCircleDefaults-config.txt

(For example, Google Sketchup 8's plugin directory on Windows 7 defaults to: "C:\Program Files (x86)\Google\Google SketchUp 8\Plugins" - copy these files there in that case. Then, start Sketchup. For help finding the plugin directory look in the forums: search.php?keywords=plugin+folder+OR+directory )

Usage : To alter the "defaults" which the script sets for sides of a circle and segments of an arc, go to the "Plugins->Set Circle and Arc Segments Defaults", enter the desired values in the popup box, and click "OK".

POSSIBLE CAVEAT: If you select any window besides SketchUp while SketchUp is loading, it may type key-presses to change these settings into some document or web browser text box etc. It seems the script avoids that by typing an inert {TAB} key, but if your set "defaults" for the Circle and Arc tool don't load with SketchUp, make sure you don't select any other windows after starting SketchUp to load.

You could also modify the script to exploit any of the functionality of the eventrelay plugin.

For defaults, numbers divisible by four may be advisable, as they will provide vertices at right angles along the perimiter of the circle, which makes for easy rotation and geometric snapping/angular construction.

Future plans: possible exception handling for any errors related to config file.

Version history:

[UPDATE] 1.1 Revamped from scratch, incorporating suggestions by AlexMozg. Added config storage to setArcCircleDefaults-config.txt file in plugin directory (with setting via "Plugins->Set Circle and Arc Segments Defaults" menu.)

1.0 08/11 Planned updates : none. Could have menu option to alter and store "defaults"; not programming that. Anyone else is free to.
Please, register (free) to access all the attachments on the forums.
Last edited by openhatch on Wed Feb 29, 2012 1:14 am, edited 7 times in total.
openhatch
 
Posts: 9
Joined: Sat Dec 11, 2010 2:09 am
Name: Alex Hall

Re: [Plugin] Set Arc and Circle Defaults

Postby Bob James » Fri Sep 02, 2011 6:46 am

Thanks, openhatch, I'll use this often.
"If you don't plan ahead you'll be at the mercy of those that do" - Ashleigh Brilliant

"Bad is not good until worse happens" - Bob James
User avatar
Bob James
Premium Member
Premium Member
 
Posts: 605
Joined: Fri Jan 18, 2008 9:29 pm
Location: Lompoc, CA, USA
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: other
Level of SketchUp: Advanced

Re: [Plugin] Set Arc and Circle Defaults

Postby AlexMozg » Fri Sep 02, 2011 7:24 am

Without "EventRelay.dll"
Safer to use the method "send_action" to activate the tool, because that hot keys of these tools can be modified.

Code: Select all
require 'sketchup.rb'
unless file_loaded?(file_name = File.basename(__FILE__))
Kernel.require 'win32ole.so'
wscript = WIN32OLE.new("WScript.Shell")
Sketchup.send_action   "selectCircleTool:"
UI.start_timer(0, false){
   for key in %w|12 {ENTER}| ; wscript.SendKeys key; end
   UI.start_timer(0, false){
      Sketchup.send_action   "selectArcTool:"
      UI.start_timer(0, false){
         for key in %w|6  {ENTER}| ; wscript.SendKeys key; end
         UI.start_timer(0, false){Sketchup.send_action   "selectSelectionTool:"}
      }
   }
}
file_loaded(file_name)
end
AlexMozg
 
Posts: 65
Joined: Sun Feb 24, 2008 8:33 am
Name: AlexMozg

Re: [Plugin] Set Arc and Circle Defaults

Postby thomthom » Fri Sep 02, 2011 8:30 am

AlexMozg wrote:Without "EventRelay.dll"
Safer to use the method "send_action" to activate the tool, because that hot keys of these tools can be modified.

+1
Thomas Thomassen — SketchUp Monkey & Coding addict
List of my plugins and link to the CookieWare fund
User avatar
thomthom
Global Moderator
 
Posts: 17545
Joined: Tue Nov 13, 2007 12:47 pm
Location: Trondheim, Norway
Name: thomthom
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: architecture
Level of SketchUp: Advanced

Re: [Plugin] Set Arc and Circle Defaults

Postby vicspa » Fri Sep 02, 2011 4:13 pm

Hope someone takes you up and does a menu option.
vicspa
 
Posts: 302
Joined: Wed May 28, 2008 3:11 pm
Location: NYC
Name: victor
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: illustration, cartoons
Level of SketchUp: Intermediate

Re: [Plugin] Set Arc and Circle Defaults

Postby Bob James » Fri Sep 02, 2011 6:14 pm

vicspa wrote:Hope someone takes you up and does a menu option.

+1
"If you don't plan ahead you'll be at the mercy of those that do" - Ashleigh Brilliant

"Bad is not good until worse happens" - Bob James
User avatar
Bob James
Premium Member
Premium Member
 
Posts: 605
Joined: Fri Jan 18, 2008 9:29 pm
Location: Lompoc, CA, USA
Operating system: Windows
SketchUp version: 8
License type: Pro
SketchUp use: other
Level of SketchUp: Advanced

Re: [Plugin] Set Arc and Circle Defaults

Postby openhatch » Fri Sep 02, 2011 10:12 pm

Ha!

Thanks to AlexMozg for rewriting it a better way! :D

(I have little idea what that code actually does, BTW)

That rewrite only ran after I found a copy of win32ole.so and dropped it into the plugins folder. The copy of the file I found was linked from this thread.

Is that file what I should use then (or is it safe)?
openhatch
 
Posts: 9
Joined: Sat Dec 11, 2010 2:09 am
Name: Alex Hall

Re: [Plugin] Set Arc and Circle Defaults

Postby openhatch » Sat Sep 03, 2011 8:34 am

So.. okay.. I added a plugin menu option to alter and store "defaults". :)

And per suggestion, the code uses Sketchup.send_action to avoid problems of hotkeys changing.

I encounted an undesirable side effect with SendKeys via win32ole.so (and found the same limitation with eventrelay's SendKeyMacro): if Sketchup was loading for a while and I (for example) had a web browser open with a text box, while Sketchup was out of focus, SendKeys would type the macro (for example "12s") into the browser's text box! - appearing to make ghost typing (could be creepy for a user) but also not typing it into SketchUp's Value Control Box.. and so not changing any setting!

After quite a bit of frustration, and observing that strangely the second parts of the macro (for the Arc tool settings) didn't type into the web browser window, but in fact got in to SketchUp.. however those magic brackets and start_timer(s) work, they seem to alleviate it.. I finally got the error to apparently go away by placing an inert {TAB} before the macro for Circle Tool (as Circle Tool was to Arc Tool (whose settings worked), so Tab is now to Circle Tool).. blah blah :roll: but it apparently worked:

Code: Select all
   UI.start_timer(0, false){
  Sketchup.send_action   "selectSelectionTool:"
    myEventRelay.SendKeyMacro("{TAB}")
      UI.start_timer(0, false){
      Sketchup.send_action   "selectCircleTool:"
      myEventRelay.SendKeyMacro(circleSides.to_s + "s{ENTER}")
      UI.start_timer(0, false){
        Sketchup.send_action   "selectArcTool:"
        UI.start_timer(0, false){
        myEventRelay.SendKeyMacro(arcSegments.to_s + "s{ENTER}")
          UI.start_timer(0, false){Sketchup.send_action   "selectSelectionTool:"}
            }
         }
      }
   }


Sticking with eventrelay over win32ole; it seems to load and execute faster.
openhatch
 
Posts: 9
Joined: Sat Dec 11, 2010 2:09 am
Name: Alex Hall

Re: [Plugin] Set Arc and Circle Defaults 1.1 2011-09-03

Postby Involute » Tue Nov 22, 2011 1:59 am

I'd love to get this to work, openhatch, but I'm unfamiliar with plugins. Can you give me some pointers (cut and paste the code to a file, save it in plugins directory, etc.)? Thanks.
Involute
 
Posts: 49
Joined: Sat Feb 07, 2009 8:38 pm

Re: [Plugin] Set Arc and Circle Defaults 1.1 2011-09-03

Postby openhatch » Wed Feb 29, 2012 1:10 am

Involute wrote:I'd love to get this to work, openhatch, but I'm unfamiliar with plugins. Can you give me some pointers (cut and paste the code to a file, save it in plugins directory, etc.)? Thanks.


Sorry I missed this reply. Added to usage notes in the post is this answer:

Extract the files in the .zip archive to your plugins folder (for example, in Windows 7, this is usually "C:\Program Files (x86)\Google\Google SketchUp 8\Plugins"), and start Sketchup.

[Edit:] no, that answer is already in there under installation instructions... ;)
openhatch
 
Posts: 9
Joined: Sat Dec 11, 2010 2:09 am
Name: Alex Hall

SketchUcation One-Liner Adverts

by Ad Machine » 5 minutes ago

Vertex Tools for SketchUp. Take control over each vertex with this vertex editor for SketchUp.

Premium Members get 20% discount!

Ad Machine
Robot
 
Posts: 2012


Return to Plugins

Who is online

Users browsing this forum: Bing [Bot], DaveMc, Google Bot, Google Feedfetcher, lllPrince, percy92 and 10 guests