乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 57|回复: 3

自动填充的,出错了,帮忙看看!!

[复制链接]

3

主题

26

帖子

3

银币

初来乍到

Rank: 1

铜币
38
发表于 2008-4-17 21:54:00 | 显示全部楼层 |阅读模式
Sub test()
    Dim hatchObj As AcadHatch
    Dim patternName As String
    Dim PatternType As Long
    Dim bAssociativity As Boolean
    Dim outerLoop(0 To 0) As AcadEntity
    ' 定义图案填充
    patternName = "ANSI31"
    PatternType = 0
    bAssociativity = True
    ' 当前图纸的实体数目
    Dim n As Long
    n = ThisDrawing.ModelSpace.Count
   
    ' 调用BOUNDARY命令获取某一点处的边界
    Dim Pt As Variant
    Pt = ThisDrawing.Utility.GetPoint(, "指定内部点: ")
    ThisDrawing.SendCommand "_-Boundary" & vbCr & Pt(0) & "," & Pt(1) & vbCr & vbCr
   
    ' 如果存在边界,则会生成新的实体
    Dim lwpLineObj As AcadLWPolyline
    If ThisDrawing.ModelSpace.Count > n Then
        Set lwpLineObj = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1)
        MsgBox lwpLineObj.Area
'        lwpLineObj.Delete
        lwpLineObj.Closed = True
    Else
        MsgBox "未发现有效的边界。"
    End If
    outerLoop(0) = lwpLineObj
    hatchObj.AppendOuterLoop (outerLoop)
    hatchObj.Evaluate
    ObjDoc.Regen True
End Sub
回复

使用道具 举报

3

主题

26

帖子

3

银币

初来乍到

Rank: 1

铜币
38
发表于 2008-5-8 12:37:00 | 显示全部楼层
解决了,
需要加Boundary命令前加个zoomall命令
回复

使用道具 举报

8

主题

31

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
63
发表于 2008-5-9 18:47:00 | 显示全部楼层
我想楼主个问题
在对面域填充时
当面域为不连续或为环状时则不能正常填充(利用快速选择能选中图案填充,就是不能显示)
回复

使用道具 举报

16

主题

49

帖子

2

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
113
发表于 2008-5-9 19:14:00 | 显示全部楼层
Dim i As Long
Dim hatchObj As AcadHatch
Dim patternName As String
Dim patternType As Long
Dim assocVar As Boolean
Dim outerLoop(0 To 0) As AcadEntity
Dim eNt As AcadEntity
Dim sset As AcadSelectionSet
Dim outerLoop1(0 To 0) As AcadEntity
Dim n As Long
Dim Pt As Variant
patternName = "SOLID"
patternType = acHatchPatternTypePreDefined
assocVar = True
n = ThisDrawing.ModelSpace.Count
Pt = ThisDrawing.Utility.GetPoint(, "指定内部点: ")
ThisDrawing.SendCommand "_-Boundary" & vbCr & Pt(0) & "," & Pt(1) & vbCr & vbCr
If ThisDrawing.ModelSpace.Count > n Then
   Set outerLoop1(0) = ThisDrawing.ModelSpace.Item(ThisDrawing.ModelSpace.Count - 1)
Else
   MsgBox "未发现有效的边界。"
End If
Set sset = ThisDrawing.SelectionSets.Add("ss7")
sset.AddItems outerLoop1
For Each eNt In sset
   Set outerLoop(0) = eNt
   Set hatchObj = ThisDrawing.ModelSpace.AddHatch(patternType, patternName, assocVar)
   hatchObj.AppendOuterLoop (outerLoop)
   hatchObj.Evaluate
Next
sset.Delete
ThisDrawing.Regen True
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 17:16 , Processed in 0.592412 second(s), 60 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表