明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1956|回复: 1

如何实现填充图案

[复制链接]
发表于 2006-12-13 19:26:00 | 显示全部楼层 |阅读模式

请教版主和各位高手

我刚开始学vba在cad中编程

可以告诉我

如何实现填充图案

谢谢了

 楼主| 发表于 2006-12-14 12:45:00 | 显示全部楼层

我找到答案了

大家一起分享

Sub Example_HatchStyle()
      ' 这个范例在模型空间中建立一个关联式图案填充
      ' 接着改变图案填充样式来示范各种
      ' 内回路的处理方式。

      Dim hatchObj As AcadHatch
      Dim patternName As String
      Dim PatternType As Long
      Dim bAssociativity As Boolean

      ' 定义图案填充

      patternName = "ANSI31"
      PatternType = 0
      bAssociativity = True

      ' 建立关联的Hatch对象
      Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)
          hatchObj.Update
      ' 建立图案填充的外回路
      ' 使用一个弧以及一条线来建立封闭回路

      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) = 50: center(1) = 30: center(2) = 0
      radius = 30
      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)

      ' 附加外回路到图案填充对象
      hatchObj.AppendOuterLoop (outerLoop)
 
      Dim innerLoop1(0) As AcadEntity
      center(0) = 50: center(1) = 34.5: center(2) = 0
      radius = 10
      Set innerLoop1(0) = ThisDrawing.ModelSpace.AddCircle(center, radius)
      hatchObj.AppendInnerLoop (innerLoop1)
      ' 将图案填充样式设定忽略
      hatchObj.HatchStyle = acHatchStyleIgnore
      ThisDrawing.Regen True
     

  End Sub

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-26 22:43 , Processed in 0.160608 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表