乐筑天下

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

[求助]怎么用Hatch对凹多边形进行填充?

[复制链接]

2

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
14
发表于 2008-7-26 12:25:00 | 显示全部楼层 |阅读模式
请问怎么实现凹多边形的填空呢?我用Hatch只能给凸多边形填充。
我是直接用线段作为外边界调用Hatch可是会报错如下:
运行时错误“91”
对象变量或with块变量未设置
程序如下,这只是一个测试程序,没有实际意义:
Public Sub TestHatch()
Dim objList(11) As AcadEntity
Dim pt1(0 To 2) As Double
Dim pt2(0 To 2) As Double
Dim pt3(0 To 2) As Double
Dim pt4(0 To 2) As Double
Dim pt5(0 To 2) As Double
Dim pt6(0 To 2) As Double
Dim pt7(0 To 2) As Double
Dim pt8(0 To 2) As Double
Dim pt9(0 To 2) As Double
Dim pt10(0 To 2) As Double
Dim pt11(0 To 2) As Double
Dim pt12(0 To 2) As Double
Dim pt(0 To 2) As Double
pt1(0) = 160: pt1(1) = 90: pt1(2) = 0
pt2(0) = 200: pt2(1) = 90: pt2(2) = 0
pt3(0) = 200: pt3(1) = 100: pt3(2) = 0
pt4(0) = 190: pt4(1) = 100: pt4(2) = 0
pt5(0) = 190: pt5(1) = 110: pt5(2) = 0
pt6(0) = 200: pt6(1) = 110: pt6(2) = 0
pt7(0) = 200: pt7(1) = 120: pt7(2) = 0
pt8(0) = 165: pt8(1) = 120: pt8(2) = 0
pt9(0) = 160: pt9(1) = 115: pt9(2) = 0
pt10(0) = 170: pt10(1) = 115: pt10(2) = 0
pt11(0) = 170: pt11(1) = 110: pt11(2) = 0
pt12(0) = 160: pt12(1) = 100: pt12(2) = 0
pt(0) = 165: pt(1) = 115: pt(2) = 0
objList(0) = AddArcRt(pt, 5, 2)
objList(1) = ThisDrawing.ModelSpace.AddLine(pt1, pt2)
objList(2) = ThisDrawing.ModelSpace.AddLine(pt2, pt3)
objList(3) = ThisDrawing.ModelSpace.AddLine(pt3, pt4)
objList(4) = ThisDrawing.ModelSpace.AddLine(pt4, pt5)
objList(5) = ThisDrawing.ModelSpace.AddLine(pt5, pt6)
objList(6) = ThisDrawing.ModelSpace.AddLine(pt6, pt7)
objList(7) = ThisDrawing.ModelSpace.AddLine(pt7, pt8)
objList(8) = ThisDrawing.ModelSpace.AddLine(pt9, pt10)
objList(9) = ThisDrawing.ModelSpace.AddLine(pt10, pt11)
objList(10) = ThisDrawing.ModelSpace.AddLine(pt11, pt12)
objList(11) = ThisDrawing.ModelSpace.AddLine(pt12, pt1)
Dim color As AcadAcCmColor
Set color = AcadApplication.GetInterfaceObject(".AcCmColor.16")
Call color.SetRGB(0, 255, 127)
AddHatchTC objList, 0, True, color
End Sub
回复

使用道具 举报

29

主题

503

帖子

8

银币

中流砥柱

Rank: 25

铜币
619
发表于 2008-7-26 12:53:00 | 显示全部楼层
Set objList(0) = AddArcRt(pt, 5, 2)
Set objList(1) = ThisDrawing.ModelSpace.AddLine(pt1, pt2)
Set objList(2) = ThisDrawing.ModelSpace.AddLine(pt2, pt3)
Set objList(3) = ThisDrawing.ModelSpace.AddLine(pt3, pt4)
Set objList(4) = ThisDrawing.ModelSpace.AddLine(pt4, pt5)
Set objList(5) = ThisDrawing.ModelSpace.AddLine(pt5, pt6)
Set objList(6) = ThisDrawing.ModelSpace.AddLine(pt6, pt7)
Set objList(7) = ThisDrawing.ModelSpace.AddLine(pt7, pt8)
Set objList(8) = ThisDrawing.ModelSpace.AddLine(pt9, pt10)
Set objList(9) = ThisDrawing.ModelSpace.AddLine(pt10, pt11)
Set objList(10) = ThisDrawing.ModelSpace.AddLine(pt11, pt12)
Set objList(11) = ThisDrawing.ModelSpace.AddLine(pt12, pt1)
回复

使用道具 举报

2

主题

6

帖子

1

银币

初来乍到

Rank: 1

铜币
14
发表于 2008-7-28 09:06:00 | 显示全部楼层
真的是谢谢您啦!自己也是粗心,居然没有加Set就运行呢,还多亏您提醒,谢谢!谢谢

我是第一次接触CAD二次开发,帮老板做一个小小的任务。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-7-4 06:41 , Processed in 1.070166 second(s), 69 queries .

© 2020-2025 乐筑天下

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