【问题标题】:How do I get a list of all open parts in NX using NX Open?如何使用 NX Open 获取 NX 中所有开放部件的列表?
【发布时间】:2021-10-27 14:29:07
【问题描述】:

如何使用 NX Open 获取 Siemens NX 中所有开放部件的列表?

我尝试使用Session.Parts,但我在使用它时遇到了问题,而且我觉得它很简单。我试过了

for (auto part in session->Parts())
{
    // ...
}

但编译器不喜欢它。

【问题讨论】:

    标签: nxopen


    【解决方案1】:

    C++

    NXOpen::Session::Parts() 返回一个NXOpen::PartCollection,与所有 NX Open 集合一样,可以对其进行迭代,并且可以取消对迭代器的引用以访问实际的 Part 对象:

    #include <NXOpen/Session.hxx>
    #include <NXOpen/Part.hxx>
    #include <NXOpen/PartCollection.hxx>
    #include <NXOpen/BasePart.hxx>
    
    NXOpen::Session *session = NXOpen::Session::GetSession();
    for (auto it = session->Parts()->begin(); it != session->Parts()->end(); it++)
    {
        NXOpen::Part *part = *it;
        std::string name = part->Name().GetText();
        std::string fullPath = part->FullPath().GetText();
        // Do something with name or fullPath...
    }
    

    C#

    只需循环遍历NXOpen.Session.Parts 即可:

    using NXOpen.Session;
    using NXOpen.Part;
    
    Session session = Session.GetSession();
    foreach (Part part in session.Parts)
    {
        string name = part.Name;
        string fullPath = part.FullPath;
        // Do something with name or fullPath...
    }
    

    Java

    import nxopen.Session;
    import nxopen.Part;
    import java.util.Iterator;
    
    Session session = (Session)SessionFactory.get("Session");
    for (Iterator it = session.parts().iterator(); it.hasNext();) {
        Part part = (Part)it.next();
        String name = part.name();
        String fullPath = part.fullPath();
        // Do something with name or fullPath...
    }
    

    【讨论】:

      猜你喜欢
      • 2021-10-26
      • 1970-01-01
      • 2021-09-16
      • 1970-01-01
      • 1970-01-01
      • 2021-09-30
      • 2022-06-22
      • 2022-12-01
      • 2020-10-13
      相关资源
      最近更新 更多