CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

常量属性 (ActiveX)

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

摘要: 指定属性或属性引用是否为常量。

指定属性或属性引用是否为常量。

支持的平台:仅窗口

签名

工 务 局:

object.Constant
对象

类型:属性,属性引用

此属性适用的对象。

属性值

只读:不,对象;是,对象AttributeAttributeReference

类型:布尔

  • True:该属性是常量属性。
  • False:该属性不是常量属性。

言论

常量属性是在每次出现时保持相同值的属性。AutoCAD 不会提示输入常量属性的值。属性只能作为四种可选模式之一存在:常量、预设、不可见或验证。

注意:AFLAGS 系统变量存储当前模式设置。可以使用属性查询当前模式。Mode

例子

工 务 局:

Sub Example_Constant()
    ' This example creates an attribute definition in model space.
    ' It then queries the attribute to see if it is a constant attribute.
    
    Dim attributeObj As AcadAttribute
    Dim height As Double
    Dim mode As Long
    Dim prompt As String
    Dim insertionPoint(0 To 2) As Double
    Dim tag As String
    Dim value As String
    
    ' Define the attribute definition
    height = 1#
    mode = acAttributeModeVerify
    prompt = "New Prompt"
    insertionPoint(0) = 5#: insertionPoint(1) = 5#: insertionPoint(2) = 0
    tag = "New_Tag"
    value = "New Value"
    
    ' Create the attribute definition object in model space
    Set attributeObj = ThisDrawing.ModelSpace.AddAttribute(height, mode, prompt, insertionPoint, tag, value)
    ZoomAll
            
    ' Query the attribute
    GoSub QUERYSTATUS
    
    ' Change the attribute
    attributeObj.constant = Not attributeObj.constant
    GoSub QUERYSTATUS
    
    Exit Sub
    
QUERYSTATUS:
    If attributeObj.constant Then
        MsgBox "The attribute is a constant attribute."
    Else
        MsgBox "The attribute is not a constant attribute."
    End If
    Return
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_Constant()
    ;; This example creates an attribute definition in model space.
    ;; It then queries the attribute to see if it is a constant attribute.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Define the attribute definition
    (setq insertionPoint (vlax-3d-point 5 5 0)  
          attHeight 1
          attMode acAttributeModeVerify
          attPrompt "New Prompt"
          attTag "New_Tag"
          attValue "New Value")
    
    ;; Create the attribute definition object in model space
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq attributeObj (vla-AddAttribute modelSpace attHeight attMode attPrompt insertionPoint attTag attValue))
    (vla-ZoomAll acadObj)
            
    ;; Query the attribute
    (if (= (vla-get-Constant attributeObj) :vlax-true)
        (alert "The attribute is a constant attribute.")
        (alert "The attribute is not a constant attribute.")
    )
  
    ;; Change the attribute
    (vla-put-Constant attributeObj (if (= (vla-get-Constant attributeObj) :vlax-true) :vlax-false :vlax-true))
  
    (if (= (vla-get-Constant attributeObj) :vlax-true)
        (alert "The attribute is a constant attribute.")
        (alert "The attribute is not a constant attribute.")
    )
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-28 02:04

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部