【发布时间】:2017-09-28 09:39:40
【问题描述】:
我正在尝试使用 CATVBA 或 catvbs 以编程方式检查 catparts(包含几何图形和 FTA)并隔离一些表面和内部线框。
我的问题是“如何以编程方式在 CATVBA 中隔离表面线框?”或者更准确地说“如何以编程方式实现isolate 命令?”
长解释
举个例子:贴在表面上的旗标。你有这个链接
FlagNote --> Surface --> Surface Construction Elements
如果你“隔离”了表面,你只会删除到它的构造元素的链接。但请注意,来自 FTA 的链接会被保留。
FlagNote --> Surface (isolated) -/- Surface Construction Elements
到目前为止,我不知道一种以编程方式执行此操作的方法。因此,我决定在 CATVBA 中通过剪切/粘贴表面来实现相同的目标。 但这是最终结果
FlagNote (broken link) -/- Surface (cut/paste as result) -/- Surface Construction Elements
来自 FTA 的链接也坏了,这就是问题所在!
TD;DR
“如何在CATVBA中以编程方式实现isolate命令?”
到目前为止我尝试了什么
我的第一次粗略尝试是使用模式 CATPrtResultWithOutLink 剪切/粘贴 HybridShapes
但这并不可靠,并且会破坏其他链接(如您在长解释中所见)
我会改为使用Isolate 命令,但我找不到相应的 API。我还看到命令本身在“电源输入”框中不起作用,也不能在这样的 VBA 脚本中工作
...
sel.add myHybridShape
CATIA.StartCommand "Isolate"
【问题讨论】:
-
我没有明白你真正想要做什么。您希望隔离一些表面,保留链接到它的所有 FTA 注释?
-
是的@AugustoQ。要点是“如何以编程方式隔离表面/线框?”(并执行“干净”隔离,而不影响任何链接元素,例如 FTA)。
-
正如“隔离”一词的含义所暗示的,隔离表面会破坏它拥有的所有链接,但是您可以做的是循环所有 FTA 注释,检查其参考表面并复制/然后粘贴,这将是一个相当复杂的脚本
-
感谢@AugustoQ,但您应该考虑链接方向。在此示例中
FlagNote --> Surface --> Surface Construction Elements,如果您隔离表面,您只会断开与其构造元素的链接。 来自 FTA 的链接被保留。使用剪切/粘贴技术,而不是isolate,也会破坏 FTA。 -
哦..对不起,我以前从未使用过 Isolate 命令,虽然它类似于创建基准元素。但是,尽管如此,我不知道是否有一个
Isolate命令,例如您在 API 上需要的那个,但您仍然可以尝试自己创建一个,