明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 688|回复: 4

求助AcadObject与Object的使用

[复制链接]
发表于 2018-7-18 14:32:38 | 显示全部楼层 |阅读模式
本帖最后由 qwh923820 于 2018-7-18 14:34 编辑

假如 Dim x(1 To 9) As Object 改成 Dim x(1 To 9) As AcadObject 就会出错,在x(j).Delete这一步VBA直接就崩溃了。这是什么原因?


  1. Sub 主程序()
  2. Dim i&, j&, d As Double
  3. Dim pt1(2) As Double, pt2(2) As Double, pt3(2) As Double
  4. Dim x(1 To 9) As Object

  5. pt1(0) = 0: pt1(1) = 0

  6. 'p8,p9竖向对称线
  7. pt2(0) = pt1(0) + 200
  8. pt2(1) = pt1(1) - 100
  9. pt3(0) = pt2(0)
  10. pt3(1) = pt1(1) + 2000

  11. d = 1.2    '板厚度
  12.    
  13. Call 调用(pt1, x, i, d)

  14. For j = 1 To i
  15.     x(j).Mirror pt2, pt3
  16.     x(j).Delete
  17. Next j

  18. End Sub



  19. Sub 调用(ByVal pt1, ByRef x, ByRef i, ByVal d)
  20. Dim y, g(1 To 16) As Double

  21. g(1) = pt1(0) + 50: g(2) = pt1(1) - 15
  22. g(3) = g(1): g(4) = pt1(1)
  23. g(5) = g(3) - 50: g(6) = g(4)
  24. g(7) = g(5): g(8) = g(4) - 116
  25. g(9) = g(5) + 30: g(10) = g(8)
  26. g(11) = g(9): g(12) = g(10) - 36
  27. g(13) = g(11) + 30: g(14) = g(12)
  28. g(15) = g(13): g(16) = g(14) + 15
  29. i = i + 1
  30. Set x(i) = ThisDrawing.ModelSpace.AddLightWeightPolyline(g)
  31. y = x(i).Offset(-d)
  32. i = i + 1
  33. Set x(i) = y(0)
  34. Erase y
  35. End Sub

发表于 2018-7-19 13:35:15 | 显示全部楼层
看不出有什么问题,x最好定义成acadentity
 楼主| 发表于 2018-7-20 08:57:45 | 显示全部楼层
zzyong00 发表于 2018-7-19 13:35
看不出有什么问题,x最好定义成acadentity

改成AcadEntity后运行直接崩了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x
 楼主| 发表于 2018-7-20 09:13:43 | 显示全部楼层
zzyong00 发表于 2018-7-19 13:35
看不出有什么问题,x最好定义成acadentity

是在主程序调用完“调用”程序后,运行到x(j).Delete这一步,删除偏移对象时崩溃。

我在想是不是这样的原因:
调用程序中定义的x和y是vaity类型,在执行偏移时y变成数组,里面存储的图形都是object类型,传回给主程序x数组是acadEntity类型,object类型里存放的信息是大于acadEntity的,在执行x(j).Delete时删除的数据不彻底导致VBA崩溃。

点评

你没理解面向对象,哪有什么信息大于什么什么,能赋值,类型就没问题,你的代码,在我这里是正常运行的!  发表于 2018-7-20 18:11
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 02:41 , Processed in 0.403722 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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