【发布时间】:2019-02-14 21:50:08
【问题描述】:
我有一个问题,有一个包含大量数据链接的 AutoCAD 文件,并且只想更新与特定表相关的数据链接。 类似于选择带有数据链接的表,右键单击并选择更新表数据链接的功能。
我有以下代码:
Private Sub Update_table_data_link(tblRef As AcadTable)
ThisDrawing.SendCommand "DATALINKUPDATE" & vbCr & "U" & vbCr & "K" & vbCr
End Sub
它可以工作,但会更新绘图中的所有数据链接(这是一个问题),所以一个完美的解决方案可以让我得到与tblRef相关联的链接
并将该行更改为:ThisDrawing.SendCommand "DATALINKUPDATE" & vbCr & "U" & vbCr & "D" & vbCr & "datalink_name_from_tblRef" & vbCr
或者直接发送命令更新链接到tblRef
【问题讨论】:
-
我完全不熟悉 AutoCAD 对象模型,但是
DATALINKUPDATE命令是否带有其他(可选?)参数?ThisDrawing听起来很像主机文档;按 F2 调出 Object Browser,然后搜索“SendCommand” - 该方法是否仅作为ThisDrawing的成员存在?我的意思是可能有一个TableLink.SendCommand方法;如果是这种情况,那么您也许可以取消引用您要更新的特定表并对其运行范围更窄的命令。 -
sendcommand 并不是真正的问题,它只是模仿在 autocad 命令栏中键入命令,DATALINKUPDATE 可以采用多个路径,“U”使其更新现有数据链路,然后“K”选项更新所有,“D”选项将更新一个特定的,那是我碰壁的地方,因为我不知道我必须为我选择的每个表更新哪个。
-
我会展示自己,然后把这个留给了解 AutoCAD 对象模型的人 ;-)
标签: excel vba autocad data-linking