我的模拟是在dum动力学模块中运行的,代码是用vb自动化编写的。
Visual studio 2010环境。我的问题是当我在Catia R18中运行模拟时,
这个过程是非常顺利和成功的,但是当我尝试运行它时
在不同的版本中,如R20或R21,会发生错误。
通过断点,我发现这个错误是由于获取失败引起的
Catia产品中的“机制”。代码如下:
theMechanism = product1.GetTechnologialObject("Mechanisms")当断点执行这句话时,变量theMechanism显示"Nothing“。
我所知道的解决这个问题的唯一方法是在visual studio 2012环境中再次运行代码,然后在Catia R20或R21中运行模拟,但是之后您不能在Catia R18中运行模拟,如果您想恢复到原来的版本。
R18,你必须在visual studio 2010中运行代码。
谁能解释一下Catia版本之间冲突的原因,并给我一个解决方案?谢谢!
发布于 2021-09-20 03:38:48
我认为您已经将theMechanism定义为机制,而不是尝试将其作为变体。
发布于 2021-11-03 23:13:57
product1.GetTechnologialObject("Mechanisms")返回Mechanisms,而不是Mechanism。
所以:
theMechanisms = product1.GetTechnologialObject("Mechanisms")
theMechanism = theMechanisms.Item(1)此外,如果您在一台PC上安装了多个CATIA版本,请检查哪个是主版本(check 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版本,则最后安装的版本将是默认版本。要更改默认的CATIA版本,请遵循以下几点(取自here):
https://stackoverflow.com/questions/69133082
复制相似问题