zoukankan      html  css  js  c++  java
  • EPLAN API 入门系列 基础篇

    1、Project::Hierarchy
    
    Eplan::EplApi::DataModel::Project::Hierarchy Enumeration
    
    Hierarchy level of the device structure
    
    C#
    
    public enum Hierarchy {
      Functional,
      Plant,
      Place,
      Location,
      Installation,
      Document,
      UserDef
    }
    
    End Enum
    
    Members           Description 
    Functional         Functional assignment (==) 
    Plant                Higher-level function (=) 
    Place                Installation site (++) 
    Location           Mounting location (+) 
    Installation       Higher level function number 
    Document        Document type (&) 
    UserDef           User-defined (#) 
    
    2、StorableObject
    
    Eplan::EplApi::DataModel::StorableObject:
    
    The parent of all API classes representing P8 project and its structure.
    
    Eplan::EplApi::DataModel::StorableObject
        Eplan::EplApi::DataModel::Article
        Eplan::EplApi::DataModel::ArticleReference
        Eplan::EplApi::DataModel::CommunicationEntity
        Eplan::EplApi::DataModel::Connection
        Eplan::EplApi::DataModel::DeviceListEntry
        Eplan::EplApi::DataModel::E3D::PlaceHolder3D
        Eplan::EplApi::DataModel::E3D::Placement3D
        Eplan::EplApi::DataModel::FunctionDefinition
        Eplan::EplApi::DataModel::Location
        Eplan::EplApi::DataModel::MasterData::FunctionDefinitionLibrary
        Eplan::EplApi::DataModel::MasterData::Symbol
        Eplan::EplApi::DataModel::MasterData::SymbolLibrary
        Eplan::EplApi::DataModel::MergedArticleReference
        Eplan::EplApi::DataModel::MergedConnection
        Eplan::EplApi::DataModel::MergedFunction
        Eplan::EplApi::DataModel::OptionBase
        Eplan::EplApi::DataModel::Placement
        Eplan::EplApi::DataModel::PlcIO
        Eplan::EplApi::DataModel::Project
        Eplan::EplApi::DataModel::ReportBlock
    
    2.1 plan::EplApi::DataModel::Project
    
    Class representing P8 project.
    
    2.2 Eplan::EplApi::DataModel::Page
    
    Example
    
    The following example shows how to use class Page.
    
    [C#] 
    private Page Page_Example1(Project oProject, string strProjectPath, string strPageName) 
    {     
     if (oProject == null)     
     {        
       ProjectManager oProjManager = new ProjectManager();
       if (oProjManager.CurrentProject == null)            
          oProject = oProjManager.OpenProject(strProjectPath);         
       else           
          oProject = oProjManager.CurrentProject;     
      }
    
      oProject.Filter.Name = strPageName;         
      PageoProject.Filter.ExactNameMatching = true; 
      arrPages[] = oProject.Pages;
    
      if (arrPages.Length == 0)         
      return null;
    
      return arrPages[0]; 
    }
    
    2.3 Eplan::EplApi::DataModel::Article
    
    This class represents articles in the Eplan.EplApi.DataModel.Projec.
    
    Example
    
    The following example shows how to use class Article.
    
    [C#]
    private void Article_Example1(Project oProject)
    {
       foreach (Article oArticle in oProject.Articles)
       {
           if ("BECK.KL2012" == oArticle.PartNr)
           {
               if (!oArticle.Properties.ARTICLE_DEPTH.IsEmpty)
                   WriteMessage("ARTICLE_DEPTH : " + oArticle.Properties.ARTICLE_DEPTH);
               if (!oArticle.Properties.ARTICLE_VARIANT.IsEmpty)
                   WriteMessage("ARTICLE_VARIANT : " + oArticle.Properties.ARTICLE_VARIANT);
    
               foreach (int nIndex in oArticle.Properties.ARTICLE_FREE_DATA_DESCRIPTION.Indexes)
                   WriteMessage("ARTICLE_FREE_DATA_DESCRIPTION[" + nIndex + "] : " + oArticle.Properties.ARTICLE_FREE_DATA_DESCRIPTION[nIndex]);
    
               foreach (int nIndex in oArticle.Properties.ARTICLE_FREE_DATA_UNIT.Indexes)
                   WriteMessage("ARTICLE_FREE_DATA_UNIT[" + nIndex + "] : " + oArticle.Properties.ARTICLE_FREE_DATA_UNIT[nIndex]);
    
               foreach (int nIndex in oArticle.Properties.ARTICLE_FREE_DATA_VALUE.Indexes)
                   WriteMessage("ARTICLE_FREE_DATA_VALUE[" + nIndex + "] :" + oArticle.Properties.ARTICLE_FREE_DATA_VALUE[nIndex]);
           }
       }
    }
    
    2.2 plan::EplApi::DataModel::ArticleReference
    
    This class represents a part reference on a project, function, or a connection.
    
    [C#]
        Article oArticle = new Article();
        oArticle.Create(oProject, "KUKA.KR30-3", "1");            //empty Article is created in a Project
        bool bResult = oArticle.LoadFromMasterdata();             //Article is filled with data from system parts database
    
        oProject.AddArticleReference("KUKA.KR30-3", "1", 1);      //reference to the Article is created on a Project
        oFunction.AddArticleReference("KUKA.KR30-3", "1", 1);     //reference to the Article is created on a Function
        oConnection.AddArticleReference("KUKA.KR30-3", "1", 1);   //reference to the Article is created on a Connection
    
    2.4 Eplan::EplApi::DataModel::Connection
    
        Some properties of Data model classes are not linked with their owners even if from the syntax it may seem otherwise. Like in this line: oRectangle.Pen.ColorId = 5, the ColorId of the Pen is changed but oRectangle object doesn't know about it since the Pen property is a stand alone value not aware of oRectangle object existence. This remark applies to the following Connection properties: Articles, Shieldings, SubConnections, SymbolReferences, Pins.
    
    2.5 Eplan::EplApi::DataModel::Function
    
        A class that represents logical devices (or device sub-components) of Eplan.EplApi.DataModel.Project's Eplan.EplApi.DataModel.Page.
    
    Example
    
    The following example shows how to create and place Function on page.
    
    [C#
    
    string strSymbolLibName = "DIC_WUPD";
    string strSymbolName = "MW";
    int nVariant = 1;
    
    //First get SymbolVariant
     SymbolLibrary oSymbolLibrary = new SymbolLibrary(oProject, strSymbolLibName);
     Symbol oSymbol = new Symbol(oSymbolLibrary, strSymbolName);
     SymbolVariant oSymbolVariant = new SymbolVariant();
     oSymbolVariant.Initialize(oSymbol, nVariant);
    
    //Create Function
     Function oNewFunction = new Function();
     oNewFunction.Create(oPage, oSymbolVariant);
    
    //Set function name
     oNewFunction.Name = "=AP+ST1-M1";
     oNewFunction.VisibleName = "M1";
    
    //Set pins descriptions
     oNewFunction.Properties.FUNC_CONNECTIONDESIGNATION[1] = "1";
     oNewFunction.Properties.FUNC_CONNECTIONDESIGNATION[2] = "2";
     oNewFunction.Properties.FUNC_CONNECTIONDESIGNATION[3] = "PE";
                
     //Set location
     oNewFunction.Location = new PointD(120.0, 215.0);
    
     Next example shows how to build connection between two functions. 
    
    [C#]
    
    string strSymbolLibName = "DIC_WUPD";
    string strSymbolName = "M3";
    int nVariant = 0;
    
    SymbolLibrary oSymbolLibrary = new SymbolLibrary(oProject, strSymbolLibName);
    Symbol oSymbol = new Symbol(oSymbolLibrary, strSymbolName);
    SymbolVariant oSymbolVariant = new SymbolVariant();
    oSymbolVariant.Initialize(oSymbol, nVariant);
    
    Function oFunction = new Function();
    oFunction.Create(oPage, oSymbolVariant);
    oFunction.Name = "A";
    oFunction.Location = new PointD(100, 100);
    
    Function oFunction2 = new Function();
    oFunction2.Create(oPage, oSymbolVariant);
    oFunction2.Name = "B";
    oFunction2.Location = new PointD(100, 50);
    
    new Eplan.EplApi.HEServices.Generate().Connections(oPage.Project);
    
    //oFunction.Pins[3].TargetPins[0].ParentFunction.Name == "=+-B"
    
    2.6 Eplan.EplApi.Base.SchemeSetting
    
    Settings
    are used to save values of variables beyond the runtime of the program and to
    make them available again the next time program is run (similar to the Windows
    registry). A setting has a unique identifier in the system. A value or a list
    of values can be saved to a setting. It is possible to group settings into
    structures Eplan.EplApi.Base.SchemeSetting.
    
    Example
    
    Access to a setting of the system
    
    try
    {
      String strGuiLanguage= new Settings().GetStringSetting("USER.SYSTEM.GUI.LANGUAGE", 0);
      System.Windows.Forms.MessageBox.Show("The user interface language is set to: "+ strGuiLanguage);
    }
    catch (BaseException exc)
    {
      String strMessage= exc.Message;
      System.Windows.Forms.MessageBox.Show("Exception: " + strMessage);
    }
  • 相关阅读:
    spark之手机基站定位数据的商圈分析
    spark之客户流失预测
    spark之AHP层次分析顾客价值得分
    Web-Attak系列教程第二季0x13讲——信息收集
    Web-Attak系列教程第二季0x12讲——HTTP的请求与响应格式
    Python编程系列教程第14讲——继承
    独孤九剑与黑客编程
    Python编程系列教程第15讲——多态
    Python编程系列教程第16讲——拷贝自身到系统目录
    再谈独孤九剑与黑客编程
  • 原文地址:https://www.cnblogs.com/AriLee/p/2839691.html
Copyright © 2011-2022 走看看