AddHatch 方法 (ActiveX)
创建一个 Hatch 对象。 支持的平台:仅限 Windows 签名VBA: RetVal = object.AddHatch(PatternType, PatternName, Associativity [, HatchObjectType])
言论创建对象后,必须使用该方法添加外部循环。必须关闭外部循环,并且必须先创建外部循环,然后才能创建任何内部循环。使用该方法一次创建一个内部循环。HatchAppendOuterLoopAppendInnerLoop 注意:创建对象后,必须将外部循环追加到对象,才能使对象成为有效的 AutoCAD 对象。如果尝试调用该方法以外的任何操作,AutoCAD 将进入不可预知的状态。HatchHatchAppendOuterLoop
例子VBA: Sub Example_AddHatch() ' This example creates an associative gradient hatch in model space. Dim hatchObj As AcadHatch Dim patternName As String Dim PatternType As Long Dim bAssociativity As Boolean ' Define the hatch patternName = "CYLINDER" PatternType = acPreDefinedGradient '0 bAssociativity = True ' Create the associative Hatch object in model space Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity, acGradientObject) Dim col1 As AcadAcCmColor, col2 As AcadAcCmColor Set col1 = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor." & Left(AcadApplication.Version, 2)) Set col2 = AcadApplication.GetInterfaceObject("AutoCAD.AcCmColor." & Left(AcadApplication.Version, 2)) Call col1.SetRGB(255, 0, 0) Call col2.SetRGB(0, 255, 0) hatchObj.GradientColor1 = col1 hatchObj.GradientColor2 = col2 ' Create the outer boundary for the hatch (a circle) Dim outerLoop(0 To 0) As AcadEntity Dim center(0 To 2) As Double Dim radius As Double center(0) = 3: center(1) = 3: center(2) = 0 radius = 1 Set outerLoop(0) = ThisDrawing.ModelSpace.AddCircle(center, radius) ' Append the outerboundary to the hatch object, and display the hatch hatchObj.AppendOuterLoop outerLoop hatchObj.Evaluate ThisDrawing.Regen True End Sub 可视化 LISP: (vl-load-com) (defun c:Example_AddHatch() ;; This example creates an associative gradient hatch in model space. (setq acadObj (vlax-get-acad-object)) (setq doc (vla-get-ActiveDocument acadObj)) ;; Define the hatch (setq patternName "CYLINDER") (setq patternType acPreDefinedGradient) (setq bAssociativity :vlax-true) ;; Create the associative Hatch object in model space (setq modelSpace (vla-get-ModelSpace doc)) (setq hatchObj (vla-AddHatch modelSpace patternType patternName bAssociativity acGradientObject)) (setq col1 (vlax-create-object (strcat "AutoCAD.AcCmColor." (substr (getvar "ACADVER") 1 2)))) (setq col2 (vlax-create-object (strcat "AutoCAD.AcCmColor." (substr (getvar "ACADVER") 1 2)))) (vla-SetRGB col1 255 0 0) (vla-SetRGB col2 0 255 0) (vla-put-GradientColor1 hatchObj col1) (vla-put-GradientColor2 hatchObj col2) ;; Create the outer boundary for the hatch (a circle) (setq center (vlax-3d-point 3 3 0)) (setq radius 1) (setq circle (vla-AddCircle modelSpace center radius)) (setq outerLoop (vlax-make-safearray vlax-vbObject '(0 . 0))) (vlax-safearray-put-element outerLoop 0 circle) ;; Append the outerboundary to the hatch object, and display the hatch (vla-AppendOuterLoop hatchObj outerLoop) (vla-Evaluate hatchObj) (vla-Regen doc :vlax-true) (vlax-release-object col1) (vlax-release-object col2) ) |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-3-14 07:33
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.