CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

高程属性 (ActiveX)

2023-1-3 17:45| 发布者: admin| 查看: 387| 评论: 0|来自: AutoCAD

摘要: 指定图案填充、折线或剖面的当前高程。

指定图案填充、折线或剖面的当前高程。

支持的平台:仅窗口

签名

工 务 局:

object.Elevation
对象

类型:剖面线,LWPoly线折线截面

此属性适用的对象。

属性值

只读:

类型:

对象的当前高程。

言论

没有额外的评论。

例子

工 务 局:

Sub Example_Elevation()
    ' This example creates an associative hatch in model space.
    ' The elevation for that hatch is then changed.
    
    Dim hatchObj As AcadHatch
    Dim patternName As String
    Dim PatternType As Long
    Dim bAssociativity As Boolean
    
    ' Define the hatch
    patternName = "ANSI31"
    PatternType = 0
    bAssociativity = True
    
    ' Create the associative Hatch object
    Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)
    
    ' Create the outer loop for the hatch.
    ' An arc and a line are used to create a closed loop.
    
    Dim arcObj As AcadArc
    Dim lineObj As AcadLine
    Dim outerLoop(0 To 1) As AcadEntity
    Dim center(0 To 2) As Double
    Dim radius As Double
    Dim startAngle As Double
    Dim endAngle As Double
    center(0) = 5: center(1) = 3: center(2) = 0
    radius = 3
    startAngle = 0
    endAngle = 3.141592
    Set arcObj = ThisDrawing.ModelSpace.AddArc(center, radius, startAngle, endAngle)
    Set lineObj = ThisDrawing.ModelSpace.AddLine(arcObj.startPoint, arcObj.endPoint)
    
    Set outerLoop(0) = arcObj
    Set outerLoop(1) = lineObj
        
    ' Append the outer loop to the hatch object
    hatchObj.AppendOuterLoop (outerLoop)
    
    ' Append the first circle as one inner loop
    Dim innerLoop1(0) As AcadEntity
    center(0) = 5: center(1) = 4.5: center(2) = 0
    radius = 1
    Set innerLoop1(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
    hatchObj.AppendInnerLoop (innerLoop1)
    
    ' Append the second circle as the other inner loop
    Dim innerLoop2(0) As AcadEntity
    radius = 0.5
    Set innerLoop2(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
    hatchObj.AppendInnerLoop (innerLoop2)
    
    ' Change the viewing direction of the viewport to better see the elevation
    Dim NewDirection(0 To 2) As Double
    NewDirection(0) = -1: NewDirection(1) = -1: NewDirection(2) = 1
    ThisDrawing.ActiveViewport.direction = NewDirection
    ThisDrawing.ActiveViewport = ThisDrawing.ActiveViewport
    ZoomAll
    
    ' Find the current elevation for the hatch
    Dim currElevation As Double
    currElevation = hatchObj.Elevation
    MsgBox "The current elevation is " & hatchObj.Elevation, , "Elevation Example"
    
    ' Set the hatch elevation to 3
    hatchObj.Elevation = 3#
    hatchObj.Evaluate
    ZoomAll
    MsgBox "The elevation is now " & hatchObj.Elevation, , "Elevation Example"
                 
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_Elevation()
    ;; This example creates an associative hatch in model space.
    ;; The elevation for that hatch is then changed.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    (setq modelSpace (vla-get-ModelSpace doc))
    
    ;; Define the hatch
    (setq patternName "ANSI31"
          patternType acHatchPatternTypePreDefined
          bAssociativity :vlax-true)
    
    ;; Create the associative Hatch object
    (setq modelSpace (vla-get-ModelSpace doc))  
    (setq hatchObj (vla-AddHatch modelSpace patternType patternName bAssociativity acHatchObject))
    
    ;; Create the outer loop for the hatch.
    ;; An arc and a line are used to create a closed loop.
    (setq center (vlax-3d-point 5 3 0)
          radius 3
          startAngle 0
          endAngle 3.141592)

    ;; Add the arc and line to Model space
    (setq arcObj (vla-AddArc modelSpace center radius startAngle endAngle))
    (setq lineObj (vla-AddLine modelSpace (vla-get-StartPoint arcObj) (vla-get-EndPoint arcObj)))

    (setq outerLoop (vlax-make-safearray vlax-vbObject '(0 . 1)))
    (vlax-safearray-put-element outerLoop 0 arcObj)
    (vlax-safearray-put-element outerLoop 1 lineObj)
        
    ;; Append the outer loop to the hatch object
    (vla-AppendOuterLoop hatchObj outerLoop)
    
    ;; Append the first circle as one inner loop
    (setq center (vlax-3d-point 5 4.5 0)
          radius 1)
    
    (setq innerLoop1 (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (vlax-safearray-put-element innerLoop1 0 (vla-AddCircle modelSpace center radius))
    (vla-AppendInnerLoop hatchObj innerLoop1)
    
    ;; Append the second circle as the other inner loop
    (setq radius 0.5)
    (setq innerLoop2 (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (vlax-safearray-put-element innerLoop2 0 (vla-AddCircle modelSpace center radius))
    (vla-AppendInnerLoop hatchObj innerLoop2)
  
    ;; Change the viewing direction of the viewport to better see the elevation
    (setq NewDirection (vlax-3d-point -1 -1 1))
    (setq activeViewport (vla-get-ActiveViewport doc))
    (vla-put-Direction activeViewport NewDirection)
    (vla-put-ActiveViewport doc activeViewport)  
    (vla-ZoomAll acadObj)
    
    ;; Find the current elevation for the hatch
    (setq currElevation (vla-get-Elevation hatchObj))
    (alert (strcat "The current elevation is " (rtos currElevation 2)))
    
    ;; Set the hatch elevation to 3
    (vla-put-Elevation hatchObj 3)
    (vla-Evaluate hatchObj)
    (vla-ZoomAll acadObj)
    (alert (strcat "The elevation is now " (rtos (vla-get-Elevation hatchObj) 2)))
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-12 17:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部