【问题标题】:Simulation in Catia of different versions在不同版本的 Catia 中进行仿真
【发布时间】:2021-09-10 13:38:21
【问题描述】:

我的模拟是在dum kinetics 模块中运行的,代码是在Visual Studio 2010 环境下用vb 自动化编写的。我的问题是,当我在 Catia R18 中运行模拟时,
过程完全顺利且成功,但是当我尝试在不同版本(如 R20 或 R21)中运行它
时,出现错误。
通过断点发现报错是由于Catia产品中的“机制”获取失败导致的。这是代码:

theMechanism = product1.GetTechnologialObject("Mechanisms")

断点执行这句话时,变量theMechanism显示“Nothing”。
我知道解决这个问题的唯一方法是在 Visual Studio 2012 环境中再次运行代码,然后模拟在 Catia R20 或 R21 中工作,但之后你不能在 Catia R18 中运行模拟,如果你想恢复到版本
R18,您必须在 Visual Studio 2010 中运行代码。
谁能解释导致 Catia 版本之间冲突的原因并给我一个解决方案?谢谢!

【问题讨论】:

    标签: vb.net automation catia


    【解决方案1】:

    我认为您已将 theMechanism 定义为 Mechanism 而不是尝试将其作为变体。

    【讨论】:

    • 是的,你是对的,我已经将theMechanism定义为Mechanism。但是我应该如何尝试它作为变体?你能给我一个更详细的答案吗?谢谢!
    • Dim themechanism as variant
    【解决方案2】:
    product1.GetTechnologialObject("Mechanisms")
    

    返回Mechanisms,而不是Mechanism

    所以:

    theMechanisms = product1.GetTechnologialObject("Mechanisms")
    theMechanism = theMechanisms.Item(1)
    

    另外,如果您在一台 PC 上安装了多个 CATIA 版本,请检查哪个是主要版本(检查 RegServer 命令)。检查 Visual Studio 版本是否引用了相同的 CATIA 版本。理论上,如果您不更改主要 CATIA 版本,它们应该是。

    您还可以通过以下方式获得该机制:

    KinematicsWorkbench kinWork = (KinematicsWorkbench)productDocument1.GetWorkbench("KinematicsWorkbench");
    Mechanisms mechanisms = kinWork.Mechanisms;
    Mechanism mechanism = mechanisms.Item(1);
    

    这是 C# 代码,但 VB.NET 代码应该几乎相同,除了一些细微的语法差异。

    编辑: 如果一台机器上安装了多个 CATIA 版本,最后安装的将是默认版本。要更改默认 CATIA 版本,请遵循以下几点(取自 here):

    1. 打开 cmd.exe
    2. 在 CMD 窗口中通过键入“CD /code/bin”更改目录(通常为 CD C:\Program Files\Dassault Systemes\Bxx\win_b64\code\bin),然后按 Enter。
    3. 在下一行输入“CNEXT.exe /regserver”,然后按 Enter。
    4. 这似乎什么也没做,但会显示下一行。在这个阶段重启机器,然后享受。

    【讨论】:

    • 我也试过workbench方法,同样的问题出现了。如何检查 RegServer 命令,如果 Visual Studio 版本确实引用了相同的 CATIA 版本,我应该如何解决这个问题?非常感谢!
    • @Liu 我用有关 RegServer 的信息编辑了我的答案。您确定问题中的那条线有效吗?你能复制更多关于机制的代码吗?我不知道 R18,但在 R20+ 中,这条线肯定行不通。您可以在带有 R18 的 VS2010 和带有 R20 的 VS2012 中运行相同的代码并且它可以在 R18 中运行,但不能在 R20 中运行吗?我不确定是否可以检查 VS 中使用的是哪个 CATIA 版本,但是如果您使用 RegServer 命令设置所需的版本并重新启动 PC,两个 VS 应该使用相同的版本。
    • 感谢您提供有关 RegServer 的信息,我会尝试一下,看看是否有效。至于机制的代码,代码在R20和R18上都运行良好,所以代码没有错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-10
    • 2015-09-20
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多