Обновите ссылку на таблицу данных в AutoCAD, используя VBA
У меня проблема, у меня есть файл 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
1 ответ
После долгого рытья вокруг и большой помощи, вот ответ, если любой1 заинтересован
Private Sub Update_table_data_link(tblRef As AcadTable)
ThisDrawing.SendCommand "DATALINKUPDATE " & vbCr & "U" & vbCr & Ent2lspEnt(tblRef) & vbCr & vbCr
End Sub
Public Function Ent2lspEnt(entObj As AcadEntity) As String
'Designed to work with SendCommand, which can't pass objects.
'This gets an objects handle and converts it to a string
'of lisp commands that returns an entity name when run in SendCommand.
Dim entHandle As String
entHandle = entObj.Handle
Ent2lspEnt = "(handent " & Chr(34) & entHandle & Chr(34) & ")"
End Function
обратите внимание, что "Update_table_data_link" имеет таблицу в качестве входных данных