CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2018 开发者帮助

关于编辑填充边界 (VBA/ActiveX)

2024-5-18 16:52| 发布者: admin| 查看: 9| 评论: 0|原作者: admin|来自: AutoCAD

关于编辑填充边界 (VBA/ActiveX)

您可以在填充边界中追加或插入环。关联填充将更新以匹配对其边界所做的任何更改。非关联填充线不会更新。

若要编辑填充边界,请使用下列方法之一:

AppendInnerLoop
在填充物上附加一个内环。
AppendOuterLoop
将外环附加到填充物。
InsertLoopAt
在填充的给定索引处插入一个环。

将内环追加到填充物

本示例创建一个关联填充。然后,它创建一个圆圈,并将该圆圈作为内环附加到舱口。

Sub Ch4_AppendInnerLoopToHatch()
  Dim hatchObj As AcadHatch
  Dim patternName As String
  Dim PatternType As Long
  Dim bAssociativity As Boolean

  ' Define and create the hatch
  patternName = "ANSI31"
  PatternType = 0
  bAssociativity = True
  Set hatchObj = ThisDrawing.ModelSpace.AddHatch(PatternType, patternName, bAssociativity)

  ' Create the outer loop for the hatch.
  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)

  ' Create 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)

  ' Append the circle as an inner loop to the hatch
  hatchObj.AppendInnerLoop (innerLoop)

  ' Evaluate and display the hatch
  hatchObj.Evaluate
  ThisDrawing.Regen True
End Sub

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2024-6-27 16:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部