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);
    }
  • 相关阅读:
    NeoFinder for Mac(增强型文件管理工具)破解版安装
    Monodraw for Mac(基于 ASCII 码设计编辑工具)破解版安装
    SNF开发平台WinForm-审核流使用方法样例
    SNF快速开发平台MVC-Grid++集成打印
    SNF快速开发平台MVC-富文本控件集成了百度开源项目editor
    C#按回车Enter使输入焦点自动跳到下一个TextBox的方法收集
    SNF快速开发平台MVC-EasyUI3.9之-WebApi和MVC-controller层接收的json字符串的取值方法和调用后台服务方法
    SNF快速开发平台--规则引擎在程序当中如何调用
    SNF快速开发平台--规则引擎介绍和使用文档
    SNF快速开发平台MVC-EasyUI3.9之-DataGrid表格控件如何增加右键菜单
  • 原文地址:https://www.cnblogs.com/AriLee/p/2839691.html
Copyright © 2011-2022 走看看