CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

提示字符串属性 (ActiveX)

2023-1-3 07:50| 发布者: admin| 查看: 525| 评论: 0|来自: AutoCAD

摘要: 指定属性的提示字符串。

指定属性的提示字符串。

支持的平台:仅窗口

签名

工 务 局:

object.PromptString
对象

类型:属性

此属性适用的对象。

属性值

只读:

类型:字符串

属性的提示字符串。

言论

插入包含此属性的块时,将显示此字符串。此字符串的默认值为属性。输入属性将禁用提示。TagStringacAttributeModeConstantMode

例子

工 务 局:

Sub Example_PromptString()
    ' This example creates an attribute definition in a block.
    ' It then inserts the block. Then it changes the prompt string
    ' of the attribute definition, and inserts the block again.
    
    ' Create the block
    Dim blockObj As AcadBlock
    Dim insertionPnt(0 To 2) As Double
    insertionPnt(0) = 0#: insertionPnt(1) = 0#: insertionPnt(2) = 0#
    Set blockObj = ThisDrawing.Blocks.Add(insertionPnt, "TEST")
    
    ' Add a circle to block
    Dim circleObj As AcadCircle
    Dim center(0 To 2) As Double
    Dim radius As Double
    center(0) = 0: center(1) = 0: center(2) = 0
    radius = 1
    Set circleObj = blockObj.AddCircle(center, radius)

    ' Define the attribute definition
    Dim attributeObj As AcadAttribute
    Dim height As Double
    Dim mode As Integer
    Dim prompt As String
    Dim tag As String
    Dim value As String
    
    height = 1#
    mode = acAttributeModeVerify
    prompt = "Enter value:"
    insertionPnt(0) = 0#: insertionPnt(1) = 0#: insertionPnt(2) = 0
    tag = "Tag1"
    value = "Circle1"
    
    ' Create the attribute definition on the block
    Set attributeObj = blockObj.AddAttribute(height, mode, prompt, insertionPnt, tag, value)
    
    ' Insert the block
    Dim blockRefObj1 As AcadBlockReference
    insertionPnt(0) = 2#: insertionPnt(1) = 2#: insertionPnt(2) = 0
    Set blockRefObj1 = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "TEST", 1#, 1#, 1#, 0)
        
    ' Change the prompt string and tag of the attribute definition
    attributeObj.PromptString = "Verify value:"
    
    ' Insert the block again
    Dim blockRefObj2 As AcadBlockReference
    insertionPnt(0) = 4#: insertionPnt(1) = 4#: insertionPnt(2) = 0
    Set blockRefObj2 = ThisDrawing.ModelSpace.InsertBlock(insertionPnt, "TEST", 1#, 1#, 1#, 0)
    
    ZoomAll

End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_PromptString()
    ;; This example creates an attribute definition in a block.
    ;; It then inserts the block. Then it changes the prompt string
    ;; of the attribute definition, and inserts the block again.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; Create the block
    (setq insertionPnt (vlax-3d-point 0 0 0))
    (setq blockObj (vla-Add (vla-get-Blocks doc) insertionPnt "TEST"))
    
    ;; Add a circle to block
    (setq center (vlax-3d-point 0 0 0)
          radius 1)
    (setq circleObj (vla-AddCircle blockObj center radius))

    ;; Define the attribute definition
    (setq insertionPoint (vlax-3d-point 0 0 0) 
          attHeight 1
          attMode acAttributeModeVerify
          attPrompt "Enter value:"
          attTag "Tag1"
          attValue "Circle1")
    
    ;; Create the attribute definition on the block
    (setq attributeObj (vla-AddAttribute blockObj attHeight attMode attPrompt insertionPoint attTag attValue))
    
    ;; Insert the block
    (setq insertionPnt (vlax-3d-point 2 2 0))
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq blockRefObj1 (vla-InsertBlock modelSpace insertionPnt "TEST" 1 1 1 0))
        
    ;; Change the prompt string and tag of the attribute definition
    (vla-put-PromptString attributeObj "Verify value:")
    
    ;; Insert the block again
    (setq insertionPnt (vlax-3d-point 4 4 0))
    (setq modelSpace (vla-get-ModelSpace doc))
    (setq blockRefObj2 (vla-InsertBlock modelSpace insertionPnt "TEST" 1 1 1 0))
    
    (vla-ZoomAll acadObj)
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-19 16:16

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部