vba - 查找粘贴了链接源的 Hybrishape 是否存在
问题描述
我在几何集合中几乎没有用链接粘贴的形状。我想知道这些形状的来源是否仍然存在。我找不到 hybridshape 的任何功能来做到这一点。
在这张图片中,第一个形状的来源存在,但第二个形状的来源被删除了,我如何区分它们
解决方案
可以判断引用的文档是否存在。
如果您需要检查引用的表面是否仍然存在......不是那么容易。
这是获取和检查链接文档的方法:
Dim oStiEngine As StiEngine
Set oStiEngine = CATIA.GetItem("CAIEngine")
Dim oDoc As Document
Set oDoc = CATIA.ActiveDocument
Dim oStiDBItem As StiDBItem
Set oStiDBItem = oStiEngine.GetStiDBItemFromCATBSTR(oDoc.fullName)
Dim ochildrenList As StiDBChildren
Set ochildrenList = oStiDBItem.GetChildren
Dim lChildrenNumber As Long
lChildrenNumber = ochildrenList.count
For i = 1 To lChildrenNumber
Dim child As Variant
Set child = ochildrenList.item(i)
Dim linkType As String
linkType = ochildrenList.linkType(i)
Debug.Print vbTab & child.name & " " & child.GetDocumentFullPath & " " & linkType & " FILE " & IIf(CATIA.FileSystem.FileExists(child.GetDocumentFullPath), "EXISTS", "MISSING")
Next
您可能需要特定的许可证才能使用 StiEngine 对象。SmartTeam 本身不是必需的。
从长远来看,您可能应该开始将已发布的元素用于文档间链接,以使您的生活更轻松。有一个设置可以强制执行此操作。
推荐阅读
- javascript - 按对象属性百分比对数组排序
- python-3.x - tensorflow create tf_record 不支持 XML 文件
- c++ - 有没有办法在已经声明对象后对其进行初始化
- python - Seaborn 堆叠直方图,包含来自多列的数据
- r - 空间距离,如何用R计算空间距离
- mysql - 如何在 Node.js 中共享所有 mysql 行?(车把)
- r - 如何在 Shiny 应用程序中动态调整 iframe 高度
- testing - 在 TDD 中,当要测试的函数未定义时,如何先编写测试?
- vue.js - Amcharts 自定义工具提示延迟渲染
- php - 尝试在 Google Cloud Console 上设置错误报告后,VM 实例上出现 HTTP 500 错误