Jump to content

dim / text to layer settings


grasshopper

Recommended Posts

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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. :thumbsup:

Link to comment
Share on other sites

  • 2 years later...

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

Link to comment
Share on other sites

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.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...