创建图案填充对象。 支持的平台:仅窗口 签名工 务 局: RetVal = object.AddHatch(PatternType, PatternName, Associativity [, HatchObjectType])
言论创建对象后,必须使用方法添加外部循环。必须关闭外部循环,并且必须先创建外部循环,然后才能创建任何内部循环。内部循环是使用该方法一次创建一个的。HatchAppendOuterLoopAppendInnerLoop 注意:创建对象后,必须将外部循环追加到对象,才能使其成为有效的 AutoCAD 对象。如果尝试调用方法以外的任何操作,AutoCAD 将进入不可预知的状态。HatchHatchAppendOuterLoop
例子工 务 局: 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 Visual 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-1-8 19:07
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.