乐筑天下

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

[测试]:AutoCAD表格制作工具的接口

[复制链接]

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-9-13 10:43:00 | 显示全部楼层 |阅读模式
该组件可供所有支持ActiveX的编程语言调用,目前仅供测试。部分说明如下:
  1. 1、AddTable
  2. Sub AddTable(ByVal InsertionPoint, ByVal NumRows As Integer, ByVal NumColumns As Integer, [ByVal InsertionDirection As Integer], [RowHeight As Double], [ByVal ColumnWidth As Double])
  3. 创建表格,需指定表格的插入点、行数和列数,以及插入方向、默认的行高和列宽。
  4. 插入方向:1代表从上到下,2代表从下到上。
  5. ETObj.AddTable iPt,3,2,1,8,10
  6. 表示创建一个3行2列的表格,默认方向是从上到下,行高是8,列宽是10。
  7. 2、SelectTable
  8. Sub SetTable(ByVal EntObj As Object)
  9. 选取现有的表格作为当前表格,仅供后续操作之用。
  10. EntObj:表示表格的块引用对象。
  11. ETObj.SetTable EntObj
  12. 3、ConvertExcel
  13. 将Excel中的表格插入到,需指定表格的插入点。
  14. 注:Excel需要先行启动。
  15. Sub ConvertTableFromExcel(ByVal RangeObj As Object, ByVal InsertionPoint, ByVal InsertoinDirection As Integer)
  16. RangeObj:代表Excel表格中要转换的单元格区域对象。
  17. InsertionPoint:代表表格在AutoCAD中的插入点。
  18. InsertoinDirection:代表表格在AutoCAD中的方向。
  19. ETObj.ConvertTableFromExcel xlSheet.Selection,iPt,2
  20. 从Excel中以当前选定的区域插入一个从下到上的表格。
  21. 4、ConvertAutoCAD
  22. 将AutoCAD中的表格插入到Excel。
  23. 注:Excel需要先行启动。
  24. Sub ConvertTableFromAutoCAD(SheetObj As Object)
  25. ETObj.ConvertTableFromExcel xlSheet
  26. 从AutoCAD中转换当前表格到Excel中。
  27. 5、AddColumn
  28. 往当前表格中添加列,需指定列的索引。
  29. 注:列的索引为列插入后的位置。
  30. Sub AddColumn(ByVal Index As Integer)
  31. ETObj.AddColumn 1
  32. 在当前表格中的第一列位置插入一列。
  33. 6、RemoveColumn
  34. 从当前表格中删除列,需指定列的索引。
  35. Sub RemoveColumn(ByVal Index As Integer)
  36. ETObj.RemoveColumn 1
  37. 在当前表格中删除第一列。
  38. 7、SetColumnWidth
  39. 更改当前表格中某一列的列宽,需指定列的索引。
  40. Public Property Width As Variant
  41. ETObj.Range("A:A").Width=20
  42. 在当前表格中将第一列的列宽设置为20mm。
  43. 15、DisplayHeadings
  44. 设置当前表格是否隐藏行号列标
  45. Sub DisplayHeadings(ByVal bShow As Boolean)
  46. ETObj.DisplayHeadings False
  47. 隐藏当前表格的行号列标。
  48. 16、DisplayGridlines
  49. 设置当前表格是否隐藏网格线
  50. Sub DisplayGridlines(ByVal bShow As Boolean)
  51. ETObj.DisplayHeadings False
  52. 隐藏当前表格的网格线。

DLL文件:

本帖以下内容被隐藏保护;需要你回复后,才能看到!

游客,如果您要查看本帖隐藏内容请回复
回复

使用道具 举报

23

主题

561

帖子

13

银币

中流砥柱

Rank: 25

铜币
653
发表于 2019-4-30 13:01:00 | 显示全部楼层
多少年前的老贴子,今日有幸拜读,荣幸之至!
作者应该是重新定义一些接口了,虽然没有帮助文档,但顾思义,也能看懂!
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-9-13 17:41:00 | 显示全部楼层
真不错,以后的表格程序完全可以抛开EXCEL了。
回复

使用道具 举报

41

主题

657

帖子

9

银币

中流砥柱

Rank: 25

铜币
821
发表于 2003-9-13 18:03:00 | 显示全部楼层
太好了!
回复

使用道具 举报

2

主题

77

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2003-9-17 14:09:00 | 显示全部楼层
以下程序调用AddTable无任何输出,无任何提示.(AutoCAD2k4,Win2K)
  1. Sub Test()
  2.    Dim NewTable As EFCAD.Table
  3.    Dim InsertP As Variant, RowCount As Integer, ColCount As Integer, TableDir As Integer, _
  4.        RowHeight As Double, ColHeight As Double
  5.       
  6.    With ThisDrawing.Utility
  7.       InsertP = (.GetPoint(, "请输入表格插入点:"))
  8.       'MsgBox InsertP(0) & vbCr & InsertP(1) & vbCr & InsertP(2)
  9.       RowCount = (.GetInteger("请输入表格的行数:"))
  10.       'MsgBox RowCount
  11.       ColCount = (.GetInteger("请输入表格的列数:"))
  12.       'MsgBox ColCount
  13.       TableDir = (.GetInteger("表格的方向(1从上到下,2从下到上):"))
  14.       'MsgBox TableDir
  15.       RowHeight = (.GetDistance(, "请输入行高:"))
  16.       'MsgBox RowHeight
  17.       ColHeight = (.GetDistance(, "请输入列宽:"))
  18.       'MsgBox ColHeight
  19.    End With
  20.    Set NewTable = New EFCAD.Table
  21.    NewTable.AddTable InsertP, RowCount, ColCount , TableDir, RowHeight, ColHeight
  22. End Sub
回复

使用道具 举报

2

主题

77

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2003-9-20 10:26:00 | 显示全部楼层
有人试过吗?
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-9-20 20:18:00 | 显示全部楼层
在Set NewTable = New EFCAD.Table之后,使用Set NewTable.Application=Application初始化应用程序对象。
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-9-21 14:37:00 | 显示全部楼层
这是一段生成坐标数据输入到表格中的程序。
  1. Dim etObj As EFCAD.Table
  2. '创建表格并选择要输入坐标的对象
  3. Sub test()
  4.     Dim iPt As Variant
  5.     Dim EntObj As AcadEntity
  6.     Dim Pts As Variant
  7.     Dim i As Integer
  8.    
  9.     On Error GoTo ErrTrap
  10.     Set etObj = New EFCAD.Table
  11.     Set etObj.Application = Application
  12.     iPt = etObj.GetPoint(, "指定表格的插入点: ")
  13.     If IsEmpty(iPt) Then Exit Sub
  14.     '在iPt点生成1行3列,方向从上到下的表格,默认行高为5,列宽为30
  15.     etObj.AddTable iPt, 1, 3, 1, 5, 30
  16.     '设置1行1列的值为“角点”,以下同
  17.     etObj.Range("A1").Text = "角点"
  18.     etObj.Range("B1").Text = "X坐标"
  19.     etObj.Range("C1").Text = "Y坐标"
  20.     '设置1行的文字对齐方式为正中对齐
  21.     etObj.Range("A1:C1").Alignment = 5
  22.     Set EntObj = etObj.GetEntity(, "选择对象: ")
  23.     Do While Not (EntObj Is Nothing)
  24.         Pts = EntObj.Coordinates
  25.         For i = 0 To UBound(Pts) Step 2
  26.             '在表格中插入1行
  27.             etObj.AddRow etObj.Rows.Count + 1
  28.             etObj.Cells(etObj.Rows.Count, 1).Text = etObj.Rows.Count - 1
  29.             etObj.Cells(etObj.Rows.Count, 2).Text = Round(Pts(i) + 0.0000000001, 4)
  30.             etObj.Cells(etObj.Rows.Count, 3).Text = Round(Pts(i + 1) + 0.0000000001, 4)
  31.         Next
  32.         Set EntObj = etObj.GetEntity(, "选择对象: ")
  33.     Loop
  34.     etObj.Range("A1:C" & etObj.Rows.Count).Alignment = 5
  35.     ThisDrawing.Regen acActiveViewport
  36.     Set EntObj = Nothing
  37.     Set etObj = Nothing
  38.     Exit Sub
  39.    
  40. ErrTrap:
  41.     On Error GoTo 0
  42. End Sub

u21cu5fhjg3.jpg

u21cu5fhjg3.jpg

回复

使用道具 举报

101

主题

507

帖子

11

银币

中流砥柱

Rank: 25

铜币
910
发表于 2003-9-24 13:31:00 | 显示全部楼层
请问各位版主,我何时才有浏览精华帖子的权限?
回复

使用道具 举报

158

主题

2315

帖子

10

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2951
发表于 2003-9-24 20:41:00 | 显示全部楼层

努力一点,很快你就可以看到了
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2025-3-12 22:58 , Processed in 0.857061 second(s), 78 queries .

© 2020-2025 乐筑天下

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