CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ActiveX 开发指南

相关分类

AppendInnerLoop Method (ActiveX)

2023-1-4 11:52| 发布者: admin| 查看: 473| 评论: 0|来自: AutoCAD

摘要: 将内部环追加到填充。

将内部环追加到填充。

支持的平台:仅窗口

签名

工 务 局:

object.AppendInnerLoop Loop
对象

类型:舱口

此方法适用的对象。

访问:仅输入

类型:变体(圆,椭圆直线折线区域样条线对象的数组)

形成闭合边界的对象数组。数组可以包含一个或多个对象。如果使用多个对象,则它们的端点必须重合才能正确创建循环。

返回值(RetVal)

无返回值。

言论

使用该方法创建对象后,使用 添加外部循环。必须关闭外部循环,并且必须先创建外部循环,然后才能添加任何内部循环。HatchAddHatchAppendOuterLoop

例子

工 务 局:

Sub Example_AppendInnerLoop()
    ' This example creates an associative hatch in model space, and then appends an outer loop to the hatch.
    
    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 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 outerLoop(0) = ThisDrawing.ModelSpace.AddArc(center, radius, startAngle, endAngle)
    Set outerLoop(1) = ThisDrawing.ModelSpace.AddLine(outerLoop(0).startPoint, outerLoop(0).endPoint)
        
    ' Append the outer loop to the hatch object
    hatchObj.AppendOuterLoop (outerLoop)
    
    ' Append a circle as the inner loop for the hatch.
    Dim innerLoop(0) As AcadEntity
    center(0) = 5: center(1) = 4.5: center(2) = 0
    radius = 1
    Set innerLoop(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
    hatchObj.AppendInnerLoop (innerLoop)
    
    ' Evaluate and display the hatch
    hatchObj.Evaluate
    ThisDrawing.Regen True
    
End Sub

Visual LISP:

(vl-load-com)
(defun c:Example_AppendInnerLoop()
    ;; This example creates an associative hatch in model space, and then appends an outer loop to the hatch.
    (setq acadObj (vlax-get-acad-object))
    (setq doc (vla-get-ActiveDocument acadObj))
    
    ;; Define the hatch
    (setq patternName "ANSI31"
          patternType 0
          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)

    (setq arc (vla-AddArc modelSpace center radius startAngle endAngle))
    (setq line (vla-AddLine modelSpace (vla-get-StartPoint arc) (vla-get-EndPoint arc)))
  
    (setq outerLoop (vlax-make-safearray vlax-vbObject '(0 . 1)))
    (vlax-safearray-put-element outerLoop 0 arc)
    (vlax-safearray-put-element outerLoop 1 line)
        
    ;; Append the outer loop to the hatch object
    (vla-AppendOuterLoop hatchObj outerLoop)
    
    ;; Append a circle as the inner loop for the hatch.
    (setq center (vlax-3d-point 5 4.5 0)
          radius 1)
    (setq circle (vla-AddCircle modelSpace center radius))

    (setq innerLoop (vlax-make-safearray vlax-vbObject '(0 . 0)))
    (vlax-safearray-put-element innerLoop 0 circle)

    (vla-AppendInnerLoop hatchObj innerLoop)
    
    ;; Evaluate and display the hatch
    (vla-Evaluate hatchObj)
    (vla-Regen doc :vlax-true)
)

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-5-12 16:32

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部