【问题标题】:CATIA V5 C# how to get AxisSystem from Active DocumentCATIA V5 C# 如何从活动文档中获取 AxisSystem
【发布时间】:2019-03-07 23:04:34
【问题描述】:

我正在尝试使用C#Active CATIA 文档上update XAxis。有谁知道该怎么做? somehowGetActiveAxisSysObject() 在伪代码中是 placeholder

                Array xMatrix = Array.CreateInstance(typeof(double), 3);
                xMatrix.SetValue(5.0, 0);
                xMatrix.SetValue(0.0, 1);
                xMatrix.SetValue(0.0, 2);
                MECMOD.AxisSystem targetAxisSys = **somehowGetActiveAxisSysObject();**
                targetAxisSys.PutXAxis(xMatrix);

谢谢!

【问题讨论】:

  • 您想在其父组件中操作零件的“轴系统”(位置/变换矩阵)吗?或者您是否想在标记为“当前”的零件中创建/操作轴系特征,这意味着它将用于创建的下一个点对象。零件根本不需要具有任何轴系统功能。

标签: c# .net catia


【解决方案1】:

自从我在 C# 中使用 Catia 已经有一段时间了,所以下面的代码可能无法正常运行。

首先,我假设您正在处理零件文档,并且您已经从菜单中创建了一个轴系统:Insert->AxisSystems->AxisSystem(或类似名称)。接下来,我还将假设您进入了此项目属性并将其重命名为“Larry”。

MECMOD.AxisSystems thisPartsAxisSysCollection = (MECMOD.AxisSystems)Part.AxisSystems;
MECMOD.AxisSystem oneAxisSys = thisPartsAxisSysCollection(1); //Index is name unknown
//or
MECMOD.AxisSystem oneAxisSys = thisPartsAxisSysCollection("Larry");
oneAxisSys.PutXAxis("your data");

如果这不是您想要做的,而是试图移动零件的原点,那么您将需要访问Part.OriginElements 并使用该对象的PlaneXY, PlaneYZ, and PlaneZX。不幸的是,只有在我没记错的情况下才能阅读这些内容。

【讨论】:

    猜你喜欢
    • 2014-05-14
    • 2017-03-29
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    相关资源
    最近更新 更多