grasshopper Posted August 19, 2009 Share Posted August 19, 2009 is it possible that when using text and/or dimensions to have it automatically use a specified layer? and with the text, because you can automatically format certain text styles to use a certain size and font, is there also a way for the text to automatically use a layer? I know that I can just activate a certain layer and use it to draw, but I bounce in and out of so many layers, the more steps I can skip the faster I'd be. Thanks in advance, sorry of my question is hard to decipher but I've had a lot of coffee:D Quote Link to comment Share on other sites More sharing options...
bonehead411 Posted August 19, 2009 Share Posted August 19, 2009 You can certainly make dims come in on a set layer via a tool palette. If you have your dimstyle already set up, just drag one onto the palette. Once there, right click on the tool and choose properties to set the required layer. Not sure about text as I've never done it and aren't at work to try it out. Quote Link to comment Share on other sites More sharing options...
NBC Posted August 19, 2009 Share Posted August 19, 2009 This method works for text/mtext also. You could even set it up so that different text styles get put on different layers if you wanted Quote Link to comment Share on other sites More sharing options...
grasshopper Posted August 20, 2009 Author Share Posted August 20, 2009 You can certainly make dims come in on a set layer via a tool palette. If you have your dimstyle already set up, just drag one onto the palette. Once there, right click on the tool and choose properties to set the required layer. Not sure about text as I've never done it and aren't at work to try it out. after I've put the different dimstyles onto the tool pallette and into the desired layer... but when I type the command the dimsension stays in the current layer, because I use hotkeys is there away for me to just type in the desired dimension command and have it in the desired layer without haveng to open my layers and choose? I'm sorry for being difficult, just doing my best to be efficeient. Thanks Quote Link to comment Share on other sites More sharing options...
NBC Posted August 20, 2009 Share Posted August 20, 2009 after I've put the different dimstyles onto the tool pallette and into the desired layer... without haveng to open my layers and choose? I'm sorry for being difficult, just doing my best to be efficeient. Thanks Yes it is possible, and you are not being difficult. I used a method using VBA, below is the code. As you may be able to see, I have also incorporated setting layers for when creating Text / Mtext / Viewports / and Xlines. Hope it is of some use. Option Explicit Private cLayer As AcadLayer Private newLayer As AcadLayer Private tempCmdName As String Private Sub AcadDocument_BeginCommand(ByVal CommandName As String) On Error Resume Next Select Case CommandName Case "QDIM" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMLINEAR" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "QLEADER" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 10 End If ActiveLayer = newLayer Case "MLEADER" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 7 End If ActiveLayer = newLayer Case "DIMCONTINUE" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMDIAMETER" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMANGULAR" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMRADIUS" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMORDINATE" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMBASELINE" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMALIGNED" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIM" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "MVIEW" Set newLayer = Layers.Item("Vports") tempCmdName = CommandName If Err Then Set newLayer = Layers.Add("Vports") newLayer.Color = 6 End If ActiveLayer = newLayer ActiveLayer.Plottable = False Case "-VPORTS" Set newLayer = Layers.Item("Vports") tempCmdName = CommandName If Err Then Set newLayer = Layers.Add("Vports") newLayer.Color = 6 End If ActiveLayer = newLayer ActiveLayer.Plottable = False Case "MTEXT" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 7 End If ActiveLayer = newLayer Case "DTEXT" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 7 End If ActiveLayer = newLayer Case "TEXT" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 7 End If ActiveLayer = newLayer Case "XLINE" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("MR-Construction_Lines") If Err Then Set newLayer = Layers.Add("MR-Construction_Lines") newLayer.Color = 30 End If ActiveLayer = newLayer ActiveLayer.Plottable = False End Select End Sub Private Sub AcadDocument_EndCommand(ByVal CommandName As String) On Error Resume Next If CommandName = tempCmdName Then ActiveLayer = cLayer End If End Sub Quote Link to comment Share on other sites More sharing options...
stevsmith Posted August 20, 2009 Share Posted August 20, 2009 With the tool pallet open. Right click on the dimension and select proporties. Then assign the layer you want. Quote Link to comment Share on other sites More sharing options...
bonehead411 Posted August 20, 2009 Share Posted August 20, 2009 after I've put the different dimstyles onto the tool pallette and into the desired layer... but when I type the command the dimsension stays in the current layer, because I use hotkeys is there away for me to just type in the desired dimension command and have it in the desired layer without haveng to open my layers and choose? If you're going down the tool palette route, you have to use the dimensions from the tool palette to have them come in on the right layer. If you don't want to move away from keyboard input for your dimensions, then NBC has provided you with a more than suitable alternative. Quote Link to comment Share on other sites More sharing options...
OVERWORKED Posted July 20, 2012 Share Posted July 20, 2012 This may be an old post, but still works in 2013, VBA is way to go, less picks Yes it is possible, and you are not being difficult.I used a method using VBA, below is the code. As you may be able to see, I have also incorporated setting layers for when creating Text / Mtext / Viewports / and Xlines. Hope it is of some use. Option Explicit Private cLayer As AcadLayer Private newLayer As AcadLayer Private tempCmdName As String Private Sub AcadDocument_BeginCommand(ByVal CommandName As String) On Error Resume Next Select Case CommandName Case "QDIM" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMLINEAR" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "QLEADER" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 10 End If ActiveLayer = newLayer Case "MLEADER" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 7 End If ActiveLayer = newLayer Case "DIMCONTINUE" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMDIAMETER" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMANGULAR" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMRADIUS" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMORDINATE" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMBASELINE" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIMALIGNED" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "DIM" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Dimension") If Err Then Set newLayer = Layers.Add("Dimension") newLayer.Color = 10 End If ActiveLayer = newLayer Case "MVIEW" Set newLayer = Layers.Item("Vports") tempCmdName = CommandName If Err Then Set newLayer = Layers.Add("Vports") newLayer.Color = 6 End If ActiveLayer = newLayer ActiveLayer.Plottable = False Case "-VPORTS" Set newLayer = Layers.Item("Vports") tempCmdName = CommandName If Err Then Set newLayer = Layers.Add("Vports") newLayer.Color = 6 End If ActiveLayer = newLayer ActiveLayer.Plottable = False Case "MTEXT" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 7 End If ActiveLayer = newLayer Case "DTEXT" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 7 End If ActiveLayer = newLayer Case "TEXT" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("Text_general") If Err Then Set newLayer = Layers.Add("Text_general") newLayer.Color = 7 End If ActiveLayer = newLayer Case "XLINE" Set cLayer = ActiveLayer tempCmdName = CommandName Set newLayer = ThisDrawing.Layers.Item("MR-Construction_Lines") If Err Then Set newLayer = Layers.Add("MR-Construction_Lines") newLayer.Color = 30 End If ActiveLayer = newLayer ActiveLayer.Plottable = False End Select End Sub Private Sub AcadDocument_EndCommand(ByVal CommandName As String) On Error Resume Next If CommandName = tempCmdName Then ActiveLayer = cLayer End If End Sub Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.