CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

颜色属性 (ActiveX)

2023-1-3 20:33| 发布者: admin| 查看: 316| 评论: 0|来自: AutoCAD

摘要: 指定对象或图层的颜色。

指定对象或图层的颜色。

支持的平台:仅窗口

签名

工 务 局:

object.Color
对象

类型:所有绘图对象图层MLeaderLeader,SubDMeshEdge,SubDMeshFace,SubDMeshVertexSubEntity,SubEntSolidEdge,SubEntSolidFaceSubEntSolidNode,SubEntSolidVertex

此属性适用的对象。

属性值

只读:否(只写对象除外)Group

类型:枚举acColor

默认颜色指定为。使用介于 0 到 256 之间的颜色索引号,或此处列出的常量之一:acByLayer

  • acByBlock
  • acByLayer(对对象无效)Layer
  • acRed
  • acYellow
  • acGreen
  • acCyan
  • acBlue
  • acMagenta
  • acWhite

言论

此属性对于大多数图形对象都是过时的,将在将来的版本中相应地删除。使用此属性时,可以将颜色设置为介于 0 到 256 之间的数字索引值并将其读取。为标准的七种颜色以及 BYBLOCK 和 BYLAYER 名称提供了常量。

如果使用,AutoCAD 将以默认颜色(白色或黑色,具体取决于您的配置)绘制新对象,直到它们被分组到块中。在图形中插入块时,块中的对象将继承颜色属性的当前设置。acByBlock

如果使用,新对象将采用绘制它们的图层的颜色。该值对对象无效。acByLayeracByLayerLayer

例子

工 务 局:

Sub Example_Color()
    ' This example creates a polyline and colors it red.
    ' It then displays the current color setting for the polyline.
    Dim plineObj As AcadPolyline
    Dim currentcolor As Variant

    ' Create Polyline
    Dim points(8) As Double
    points(0) = 3: points(1) = 7: points(2) = 0
    points(3) = 9: points(4) = 2: points(5) = 0
    points(6) = 3: points(7) = 5: points(8) = 0

    Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points)
    
    ' First set the color of the object to Red
    plineObj.Color = acRed
    ThisDrawing.Regen (True)
    
    ' Now retrieve and display the Color property
    currentcolor = plineObj.Color

    ' Translate the color from a number into text
    If currentcolor = 256 Then
        currentcolor = "By Layer"
    Else
        currentcolor = Choose(currentcolor + 1, "By Block", "Red", "Yellow", "Green", "Cyan", "Blue", "Magenta", "White")
    End If
        
    ' Display
    MsgBox "The Polyline color is: " & currentcolor, vbInformation, "Color Example"
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_Color()
    ;; This example creates a polyline and colors it red.
    ;; It then displays the current color setting for the polyline.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
  
    ;; Create Polyline
    (setq points (vlax-make-safearray vlax-vbDouble '(0 . 8)))
    (vlax-safearray-fill points '(3 7 0
				  9 2 0
				  3 5 0
				 )
    )

    (setq modelSpace (vla-get-ModelSpace doc))
    (setq plineObj (vla-AddPolyline modelSpace points))
    
    ;; First set the color of the object to Red
    (vla-put-Color plineObj acRed)
    (vla-Regen doc :vlax-true)
    
    ;; Now retrieve and display the Color property
    (setq currentcolor (vla-get-Color plineObj))

    ;; Translate the color from a number into text
    (if (= currentcolor 256)
        (setq currentcolor "ByLayer")
        (setq currentcolor (cond
            ((= currentcolor 257) "ByBlock")
            ((= currentcolor 1) "Red")
            ((= currentcolor 2) "Yellow")
            ((= currentcolor 3) "Green")
            ((= currentcolor 4) "Cyan")
            ((= currentcolor 5) "Blue")
            ((= currentcolor 6) "Magenta")
            ((= currentcolor 7) "White/Black")
            ("Other")
	))
    )
        
    ;; Display
    (alert (strcat "The Polyline color is: " currentcolor))
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-12 11:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部