将内部环追加到填充。 支持的平台:仅窗口 签名工 务 局: 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) ) |
|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-1-8 19:09
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.