乐筑天下

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

图框里的自动编号

[复制链接]

6

主题

30

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
54
发表于 2018-3-20 11:16:00 | 显示全部楼层 |阅读模式

                               
登录/注册后可看大图


这是一个标准图框的边角,能否实现类似于word中的自动编号,其中第几页
按照图框的X坐标自动编号,共几页取按照X坐标排序的最大值,并且保存图纸时自动刷新,无需人为操作。
图框是外部参照。
回复

使用道具 举报

16

主题

129

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
196
发表于 2018-3-20 12:13:00 | 显示全部楼层
肯定是可以自动填写的,代码也不复杂,就是过滤图框,计总数,按X坐标排序,再逐一写入页码即可。关键是这个程序的代码写在哪里更合适,如果写在本图,则其它图还要单独再导入一次代码。如果写在插件里面,肯定要有触发事件的。
回复

使用道具 举报

6

主题

30

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
54
发表于 2018-3-20 15:03:00 | 显示全部楼层

能否把代码写到外部参照里,这样在引用外部参照的时候会不会触发事件?
回复

使用道具 举报

16

主题

129

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
196
发表于 2018-3-20 15:31:00 | 显示全部楼层
引用过程好像不能触发事件吧?不了解。
可不可以屏蔽CAD关闭按钮(要用API),要求用户用二次开发按钮进行关闭保存,这样就强制执行代码了。
回复

使用道具 举报

0

主题

19

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2018-6-5 17:36:00 | 显示全部楼层

能不能给个范例呢~~~参考参考
回复

使用道具 举报

16

主题

129

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
196
发表于 2018-6-6 10:23:00 | 显示全部楼层

没有单独做过相同程序,从其它程序中摘录出一小段,比较凌乱,请参考!
  1. ’部分声明
  2. Public Type EntSse
  3.     EntTem As AcadEntity
  4.     X As Double
  5.     Y As Double
  6. End Type
  7. Public tempObj() As EntSse
  8. Sub 块过滤()
  9. IsOpen = False
  10. For Each acaddoc In acadapp.Documents
  11. If StrComp(acaddoc.Name, MyFileName, vbTextCompare) = 0 Then
  12. IsOpen = True
  13. acaddoc.Activate
  14. Exit For
  15. End If
  16. Next
  17. If IsOpen = False Then acadapp.Documents.Open MyPath & MyFileName
  18. acadapp.ZoomExtents
  19. Set Sset = acadapp.ActiveDocument.SelectionSets.Add(Now & Timer)
  20. CreateSSetFilter FilterType, FilterDate, 0, "insert",2,“块名称”
  21. Sset.Select acSelectionSetAll, , , FilterType, FilterDate
  22. End Sub
  23. '快速创建选择集
  24. Public Sub CreateSSetFilter(ByRef FilterType As Variant, ByRef filterData As Variant, ParamArray filter())
  25. If UBound(filter) Mod 2 = 0 Then
  26. MsgBox "filter 参数无效!"
  27. Exit Sub
  28. End If
  29. Dim fType() As Integer  '过滤器规则
  30. Dim fData() As Variant  '过滤器参数
  31. Dim Count As Integer
  32. Count = (UBound(filter) + 1) / 2
  33. ReDim fType(Count - 1)
  34. ReDim fData(Count - 1)
  35. Dim i As Integer
  36. For i = 0 To Count - 1
  37. fType(i) = filter(2 * i)
  38. fData(i) = filter(2 * i + 1)
  39. Next i
  40. FilterType = fType
  41. filterData = fData
  42. End Sub
  43. '选择集排序
  44. Sub X坐标排序(ss As AcadSelectionSet)
  45.     Dim i As Integer
  46.     Dim j As Integer
  47.     If ss.Count = 0 Then Exit Sub
  48.     ReDim tempObj(ss.Count - 1)
  49.     For i = LBound(tempObj) To UBound(tempObj)
  50.         ss(i).GetBoundingBox pMin, pMax
  51.         Set tempObj(i).EntTem = ss(i)
  52.         tempObj(i).X = pMin(0)
  53.         tempObj(i).Y = pMin(1)
  54.     Next
  55.     For i = 0 To UBound(tempObj) - 1
  56.       For j = 1 To UBound(tempObj) - i
  57.         If tempObj(j - 1).X > tempObj(j).X Then
  58.               temp = tempObj(j - 1)
  59.               tempObj(j - 1) = tempObj(j)
  60.               tempObj(j) = temp
  61.         End If
  62.       Next
  63.     Next
  64. End Sub
回复

使用道具 举报

0

主题

19

帖子

2

银币

初来乍到

Rank: 1

铜币
19
发表于 2018-6-6 18:30:00 | 显示全部楼层

非常感谢。。。
回复

使用道具 举报

4

主题

70

帖子

11

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
86
发表于 2022-6-4 11:21:00 | 显示全部楼层

您好!这个码可以共享一下吗
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 01:45 , Processed in 0.157497 second(s), 68 queries .

© 2020-2024 乐筑天下

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