乐筑天下

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

请各位大高手大哥帮我看下这个程序,解决下问题 谢谢

[复制链接]

2

主题

2

帖子

1

银币

初来乍到

Rank: 1

铜币
10
发表于 2005-6-1 00:04:00 | 显示全部楼层 |阅读模式
我是初学者,请教哪位大虾可以把它改一下,因为我这个程序只有画5边形才能放,有没有可以弄个循环语句然后随便画几边形都可以进行缩放.
Sub Line2()
Dim VarRet As Variant
Dim NewLine1 As Object
Dim NewLine2 As Object
Dim NewLine3 As Object
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 points(0 To 9) As Double
Dim plineObj As AcadLWPolyline
Dim i As Variant
Dim j As Variant
Dim s As Variant
Dim t As Variant
Dim k As Variant
Dim m As Variant
Dim n As Variant
k = ThisDrawing.Utility.GetInteger("请输入边数:")
i = ThisDrawing.Utility.GetInteger("请输入向内放样个数:")
s = ThisDrawing.Utility.GetInteger("请输入向外放样个数:")
VarRet = Utility.GetPoint(, "Point1: ")
PT1(0) = VarRet(0)
PT1(1) = VarRet(1)
VarRet = Utility.GetPoint(PT1, "Point2: ")
PT2(0) = VarRet(0)
PT2(1) = VarRet(1)
VarRet = Utility.GetPoint(PT1, "Point3: ")
PT3(0) = VarRet(0)
PT3(1) = VarRet(1)
VarRet = Utility.GetPoint(PT1, "Point4: ")
PT4(0) = VarRet(0)
PT4(1) = VarRet(1)
VarRet = Utility.GetPoint(PT1, "Point5: ")
PT5(0) = VarRet(0)
PT5(1) = VarRet(1)
points(0) = PT1(0)
points(1) = PT1(1)
points(2) = PT2(0)
points(3) = PT2(1)
points(4) = PT3(0)
points(5) = PT3(1)
points(6) = PT4(0)
points(7) = PT4(1)
points(8) = PT5(0)
points(9) = PT5(1)
Set plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(points)
plineObj.Closed = True
Set PlineCopy = plineObj.Copy
PlineCopy.color = acRed
ZoomAll
Do
m = ThisDrawing.Utility.GetInteger("请输入向内偏移量:")
If m = 0 Then
MsgBox "请输入负值"
Else
Exit Do
End If
Loop
Dim offsetObj As Variant
For j = 1 To i
offsetObj = plineObj.Offset(m * j)
Next j
ZoomAll
For t = 1 To s
offsetObj = plineObj.Offset(n * t)
Next t
ZoomAll
End Sub
回复

使用道具 举报

13

主题

396

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
448
发表于 2005-6-1 16:06:00 | 显示全部楼层
'可以输入任意边数:Sub Line2()Dim VarRet As Variant
Dim NewLine1 As Object
Dim NewLine2 As Object
Dim NewLine3 As Object
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 DoubleDim points(0 To 9) As Double
Dim plineObj As AcadLWPolyline
Dim i As Variant
Dim j As Variant
Dim s As Variant
Dim t As Variant
  1. Dim k As Integer
Dim m As Variant
Dim n As Variant
  1. Dim a
  2. Dim Var As Variant
  3. k = ThisDrawing.Utility.GetInteger("请输入边数:")
  4. ReDim Var(2 * k - 1) As Double
  5.   
  6. i = ThisDrawing.Utility.GetInteger("请输入向内放样个数:")
  7. s = ThisDrawing.Utility.GetInteger("请输入向外放样个数:")
  8. For a = 0 To k - 1
  9. VarRet = Utility.GetPoint(, "Point" & Str(a) & ": ")
  10. Var(2 * a) = VarRet(0)
  11. Var(2 * a + 1) = VarRet(1)
  12. NextSet plineObj = ThisDrawing.ModelSpace.AddLightWeightPolyline(Var)
plineObj.Closed = True
Set PlineCopy = plineObj.Copy
PlineCopy.color = acRed
ZoomAllDo
m = ThisDrawing.Utility.GetInteger("请输入向内偏移量:")
If m = 0 Then
MsgBox "请输入负值"
Else
Exit Do
End If
LoopDim offsetObj As Variant
For j = 1 To i
offsetObj = plineObj.Offset(m * j)Next j
ZoomAll
For t = 1 To s
offsetObj = plineObj.Offset(n * t)Next t
ZoomAllEnd Sub
回复

使用道具 举报

0

主题

10

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2011-12-10 23:37:00 | 显示全部楼层
收下,谢谢分享
回复

使用道具 举报

0

主题

10

帖子

6

银币

初来乍到

Rank: 1

铜币
10
发表于 2011-12-10 23:39:00 | 显示全部楼层
很多都看不懂啊
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-6-30 14:54 , Processed in 1.061915 second(s), 60 queries .

© 2020-2025 乐筑天下

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