不同版本的Catia仿真



我的仿真是在dum动力学模块中运行的,代码是在
Visual studio 2010环境下用vb自动化编写的。我的问题是,当我在Catia R18中运行模拟时,整个过程非常顺利和成功,但是当我试图在不同的版本(如R20或R21)中运行它时,会发生错误。
通过断点,我发现错误是由于无法获取
的"Mechanisms"在Catia的产品中下面是代码:

theMechanism = product1.GetTechnologialObject("Mechanisms")

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

我认为您已经将theMechanism定义为机制,而不是尝试将其作为变体。

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版本,请遵循以下几点(从这里开始):

  1. 打开用于cmd . exe
  2. 在CMD窗口中输入"CD/code/bin"(通常是CD C:Program FilesDassault)更改目录SystemesBxxwin_b64codebin),然后按Enter键。
  3. 在下一行输入"CNEXT.exe/regserver"并按Enter。
  4. 这将看起来什么也没做,但将显示下一行。在这个阶段,重启机器,然后享受。

最新更新