CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2018 开发者帮助

Target 属性 (ActiveX)

2024-5-18 16:55| 发布者: admin| 查看: 118| 评论: 0|原作者: admin|来自: AutoCAD

Target 属性 (ActiveX)

指定视图或视口的目标点。

支持的平台:仅限 Windows

签名

VBA:

object.Target
对象

类型:PViewportViewViewport

此属性应用于的对象。

属性值

只读:

类型:变体(双打的三元素阵列)

表示目标点的 3D WCS 坐标。

言论

视线从中心绘制到目标点。



例子

VBA:

Sub Example_Target()
    ' This example changes the target for a model space viewport.
    
    ' Create a new model space viewport
    Dim viewportObj As AcadViewport
    Set viewportObj = ThisDrawing.Viewports.Add("NewViewport")
    
    ' Add a circle
    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 = ThisDrawing.ModelSpace.AddCircle(center, radius)
    
    ' Find the current target
    Dim currTarget As Variant
    currTarget = viewportObj.target
    MsgBox "The current target is " & viewportObj.target(0) & ", " & viewportObj.target(1) & ", " & viewportObj.target(2), , "Target Example"
    
    ' Change the target
    Dim newTarget(0 To 2) As Double
    newTarget(0) = 2#: newTarget(1) = 2#: newTarget(2) = 0
    viewportObj.target = newTarget
    ThisDrawing.ActiveViewport = viewportObj
    ThisDrawing.Regen acAllViewports
    MsgBox "The new target is " & viewportObj.target(0) & ", " & viewportObj.target(1) & ", " & viewportObj.target(2), , "Target Example"
   
End Sub

可视化 LISP:

(vl-load-com)
(defun c:Example_Target()
    ;; This example changes the target for a model space viewport.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))

    ;; Create a new model space viewport
    (setq viewportObj (vla-Add (vla-get-Viewports doc) "NewViewport"))
    
    ;; Add a circle
    (setq center (vlax-3d-point 0 0 0)
          radius 1)

    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq circleObj (vla-AddCircle modelSpace center radius))
    
    ;; Find the current target
    (setq currTarget (vlax-variant-value (vla-get-Target viewportObj)))
    (alert (strcat "The current target is " (rtos (vlax-safearray-get-element currTarget 0) 2) ", "
                                            (rtos (vlax-safearray-get-element currTarget 1) 2) ", "
                                            (rtos (vlax-safearray-get-element currTarget 2) 2)))
    
    ;; Change the target
    (setq newTarget (vlax-3d-point 2 2 0))
    (vla-put-Target viewportObj newTarget)
    (vla-put-ActiveViewport doc viewportObj)
    (vla-Regen doc acAllViewports)

    (setq currTarget (vlax-variant-value (vla-get-Target viewportObj)))
    (alert (strcat "The new target is " (rtos (vlax-safearray-get-element currTarget 0) 2) ", "
                                        (rtos (vlax-safearray-get-element currTarget 1) 2) ", "
                                        (rtos (vlax-safearray-get-element currTarget 2) 2)))
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-3-14 07:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部