ColorMethod Property (ActiveX)

Specifies the color method.

Supported platforms: Windows only

Signature

VBA:

object.ColorMethod
object

Type: AcCmColor

The object this property applies to.

Property Value

Read-only: No

Type: acColorMethod enum

The default color method is acColorMethodByLayer. To directly determine how a color is set, use the constants listed here:

Remarks

No additional remarks.

Examples

VBA:

Sub Example_ColorMethod()
    ' This example shows how to change the
    ' ColorMethod property
    Dim col As AcadAcCmColor
    Set col = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.20")
    col.ColorMethod = AutoCAD.acColorMethodForeground
            
    ' Circle number one
    Dim cir1 As AcadCircle
    Dim pt(0 To 2) As Double
    Set cir1 = ThisDrawing.modelSpace.AddCircle(pt, 2)
    cir1.TrueColor = col
    ZoomAll
        
    Dim retCol As AcadAcCmColor
    Set retCol = cir1.TrueColor
        
    ' Message box with method and index
    Dim MethodText As String
    MethodText = col.ColorMethod
    MsgBox "ColorMethod=" & MethodText & vbCrLf & "Index=" & col.ColorIndex
        
    ' Circle number two
    Dim cir2 As AcadCircle
    Set cir2 = ThisDrawing.modelSpace.AddCircle(pt, 6)
    ZoomAll
       
    col.ColorMethod = AutoCAD.acColorMethodByBlock
       
    ' Message box with method and index
    MethodText = col.ColorMethod
    MsgBox "ColorMethod=" & MethodText & vbCrLf & "Index=" & col.ColorIndex
       
    ' Circle number three
    Dim cir3 As AcadCircle
    Set cir3 = ThisDrawing.modelSpace.AddCircle(pt, 10)
    ZoomAll
    
    Dim layColor As AcadAcCmColor
    Set layColor = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor.20")
    layColor.SetRGB 122, 199, 25
    ThisDrawing.ActiveLayer.TrueColor = layColor
        
    col.ColorMethod = AutoCAD.acColorMethodByLayer
      
    Set retCol = cir3.TrueColor
                
    ' Message box with method and index
    MethodText = col.ColorMethod
    MsgBox "ColorMethod=" & MethodText & vbCrLf & "Index=" & col.ColorIndex
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_ColorMethod()
    ;; This example shows how to change the
    ;; ColorMethod property
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    (setq modelSpace (vla-get-ModelSpace doc))  
  
    (setq col (vlax-create-object "AutoCAD.AcCmColor.20"))
    (vla-put-ColorMethod col acColorMethodForeground)
            
    ;; Circle number one
    (setq pt (vlax-3d-point 0 0 0))

    (setq cir1 (vla-AddCircle modelSpace pt 2))
    (vla-put-TrueColor cir1 col)
    (vla-ZoomAll acadObj)
    (vla-Regen doc :vlax-true)
        
    (setq retCol (vla-get-TrueColor cir1))
        
    ;; Message box with method and index
    (setq MethodText (vla-get-ColorMethod col))
    (alert (strcat "ColorMethod=" (itoa MethodText) "\nIndex=" (itoa (vla-get-ColorIndex col))))
        
    ;; Circle number two
    (setq cir2 (vla-AddCircle modelSpace pt 6))
    (vla-ZoomAll acadObj)
    (vla-Regen doc :vlax-true)
  
    (vla-put-ColorMethod col acColorMethodByBlock)
       
    ;; Message box with method and index
    (setq MethodText (vla-get-ColorMethod col))
    (alert (strcat "ColorMethod=" (itoa MethodText) "\nIndex=" (itoa (vla-get-ColorIndex col))))
        
    ;; Circle number three
    (setq cir3 (vla-AddCircle modelSpace pt 10))
    (vla-ZoomAll acadObj)
    (vla-Regen doc :vlax-true)
    
    (setq layColor (vlax-create-object "AutoCAD.AcCmColor.20"))
    (vla-SetRGB layColor 122 199 25)
    (vla-put-TrueColor (vla-get-ActiveLayer doc) layColor)
        
    (vla-put-ColorMethod col acColorMethodByLayer)
      
    (setq retCol (vla-get-TrueColor cir3))
    (vla-Regen doc :vlax-true)
                
    ;;Message box with method and index
    (setq MethodText (vla-get-ColorMethod col))
    (alert (strcat "ColorMethod=" (itoa MethodText) "\nIndex=" (itoa (vla-get-ColorIndex col))))

    (vlax-release-object col)
)