Skip to content

Instantly share code, notes, and snippets.

@jimfoltz
Last active October 9, 2015 08:14
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jimfoltz/af46fa374cd3fcedd22b to your computer and use it in GitHub Desktop.
Save jimfoltz/af46fa374cd3fcedd22b to your computer and use it in GitHub Desktop.
dim-layer.rb
# Switches the active Layer to "DIMS" when DimensionTool is used.
# Puts all Dimensions on DIMS Layer.
module JF
module DimLayer
DIM_LAYER_NAME = "DIMS"
class AppObserver < Sketchup::AppObserver
def expectsStartupNotifications()
true
end
def onNewModel(model)
model.tools.add_observer(JF::DimLayer::ToolsObserver.new)
end
def onOpenModel(model)
model.tools.add_observer(JF::DimLayer::ToolsObserver.new)
end
end
class ToolsObserver < Sketchup::ToolsObserver
@@layers = []
def onActiveToolChanged(tools, tool_name, tool_id)
if tool_name == "DimensionTool"
@@layers << Sketchup.active_model.active_layer
dim_layer = Sketchup.active_model.layers.add(DIM_LAYER_NAME)
Sketchup.active_model.active_layer = dim_layer
Sketchup.vcb_label = "Switched to Layer #{DIM_LAYER_NAME}"
else
if @@layers.size > 0
Sketchup.active_model.active_layer = @@layers.pop
end
end
end
end
end # DimLayer
end # JF
Sketchup.active_model.tools.add_observer(JF::DimLayer::ToolsObserver.new)
Sketchup.add_observer(JF::DimLayer::AppObserver.new)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment