【问题标题】:CATIAV5 VBA - Programmatically isolate surfaces and wireframeCATIA V5 VBA - 以编程方式隔离曲面和线框
【发布时间】: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 上需要的那个,但您仍然可以尝试自己创建一个,

标签: vba geometry catia


【解决方案1】:

如果您在支持它(零件设计或 GSD)的工作台中,Isolate 可以与 StartCommand 一起使用。

Dim wbName as string = "CATShapeDesignWorkbench"
if CATIA.GetWorkbenchId <> wbName then Catia.StartWorkbench wbName
sel.Clear
sel.Add myHybridShape
CATIA.StartCommand "Isolate"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-25
    • 2017-01-14
    • 2014-05-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多