我正在抓狂地尝试在草稿视图中使用生成点。我有一个 3D 模型,其中的点以特定方式命名,如下图所示: 点名称
然后在 CATDrawing 上,我生成了显示这些点的视图。如果我在 2D 中单击这些点,它们将以以下方式命名:“GeneratePoint(在此处插入 3D 点名称)”。您可以在下面看到这个命名示例: 二维生成命名
现在,我在 VBA 中尝试执行的操作是运行一段代码,该代码将选择视图中生成的点、在其上复制几何图形,并命名重复的几何图形以匹配 3D 点名称。我的问题是,我似乎无法访问单击 2D 中的点时显示的“GeneratePoint”名称。下面是我尝试访问所选点的名称的代码片段:
For j = 1 To totalcnt
Set bSel = aDoc.Selection
bSel.Add ActiveView
bSel.Search "Name='*GeneratedPoint *',sel"
Set nm = bSel.Item(j)
desc = nm.Name
desc = nm.Value.Name
通常当我有一个选择,并且从其中一个选择创建一个对象时,我可以通过selection.Item(j).Name或selection.Item(j).Value.Name访问名称,但在这种情况下都不能一个有效。
在上面的 desc=nm.Name 行中,它给了我一个名称“CATIASelectedElement16”,而不是我在绘图中单击它时在状态栏中看到的实际名称。当我使用 desc=nm.Value.Name 时,它会给我“前视图”,这是这些点所在的视图的名称。我知道它正在正确选择点,我可以看到它们被选中,并且我可以看到选择对象上的计数与我的点数相匹配。我缺少什么?作为参考,当我运行 Set nm=bSel.Item(i) 行时,该对象在“局部变量”窗口中看起来像这样。 本地窗口中的对象
正如您在该图中看到的,对象类型是 DrawingView,而我希望它是一个点。有谁对如何访问二维生成项目的名称有任何想法吗?到目前为止,我可以与之交互的唯一方法是使用选择。搜索,它将通过名称找到它们,但我无法实际使用它找到的那些点的具体名称。任何见解将不胜感激!
谢谢大家的评论。我想,我需要找到一种不同的方法。