Global/Local (component) axis
-
I'm trying to create a keystroke (or context menu command) to call the "Show Component Axes" option under Model Info/Components.
Does anyone know what this is?
By sorting out the current Axis-related items, I created this reference list:
Move Global Axes
desc: moves axis
key: "Tools/Axes"
code: { Sketchup.send_action "selectAxisTool:" }Toggle Global Axes
desc: show/hide global axis
key: "View/Axes"
code: { Sketchup.send_action "viewShowAxes:" }Reset Global Axes
desc: reset global axis to 0,0,0
key: "View/Reset axis (World)"
code: ?Context Menu (over global axis):
- Place= desc: see "Axes tool" above
- Move= desc: Dialog Box (X,Y,Z)
...code: ?
- Reset= desc: see "Reset Axes" above
- Align= desc: Top view, centered on global axis
...code: ?
- Hide= desc: see "View Axes" aboveMove Local Axes
desc: move component axis
key: "Edit/Item/Change Axes"
code: ?"Toggle Local Axes"
desc: show component axis (in Model Info/Components)
key:
code: ?Toggle Edges Axis
desc: color X,Y,Z axis-aligned edges
key: "View/Rendering/Edge/By Axis"
code: ?Display Tool Crosshairs
desc: show/hide Tool crosshairs (in Preferences/Drawing)
key: "Drawing/Display Crosshairs"
code: ? -
Sketchup.active_model.rendering_options["DisplayInstanceAxes"]=true
will display components axes, and guess what
Sketchup.active_model.rendering_options["DisplayInstanceAxes"]=false
will do ? -
Thanks Didier!
I was able to generate a quick test menu for these options with your direction:
require 'sketchup.rb' ######################################### if( not file_loaded?("Menu_Axis.rb") ) ### CONTEXT MENU UI.add_context_menu_handler do | menu | submenuz=menu.add_submenu("Axis...") submenu01=submenuz.add_item("Move Global Axis") { Sketchup.send_action "selectAxisTool;" } submenu02=submenuz.add_item("Toggle Global Axis") { Sketchup.send_action "viewShowAxes;" } submenu03=submenuz.add_item("Reset Global Axis ...?") { UI.messagebox("Missing Command!") } submenu04=submenuz.add_item("XYZ Global Axis ...?") { UI.messagebox("Missing Command!") } submenu05=submenuz.add_item("Align to Global Axis ...?") { UI.messagebox("Missing Command!") } submenuz.add_separator submenu06=submenuz.add_item("Move Local Axis ...?") { UI.messagebox("Missing Command!") } submenu07=submenuz.add_item("Toggle Local Axis") { if Sketchup.active_model.rendering_options["DisplayInstanceAxes"] Sketchup.active_model.rendering_options["DisplayInstanceAxes"]=false else Sketchup.active_model.rendering_options["DisplayInstanceAxes"]=true end } submenuz.add_separator submenu08=submenuz.add_item("Toggle Edge Axis") { if Sketchup.active_model.rendering_options["EdgeColorMode"] Sketchup.active_model.rendering_options["EdgeColorMode"]=1 else Sketchup.active_model.rendering_options["EdgeColorMode"]=2 end } submenu09=submenuz.add_item("Toggle Tool Crosshairs ...?") { UI.messagebox("Missing Command!") } end #do end #if #----------------------------------------------------------------------------- file_loaded("Menu_Axis.rb") ###...although the EdgeColorMode doesn't want to toggle back and forth (hm!)
I poked through the API, but didn't find anything immediate that suggested the RESET, or TOOL CROSSHAIRS.
-
Maybe a "view.invalidate" instruction will refresh the view after edges mode toggle ?
-
Hmm, didn't do the trick.
Looks like I have to code a function that gets the value then checks it before changing it. I thought I could skip this bit (based on the above example for ["DisplayInstanceAxes"]=false/true).
-
You have a line near the end of your code:
if Sketchup.active_model.rendering_options["EdgeColorMode"]Since that will always return true (non-nil), then it always evaluates the first conditional. That's why it doesn't ever toggle.
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register LoginAdvertisement