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);
}

 

posted @ 2012-12-30 13:34  AriLee  Views(5174)  Comments(1Edit  收藏  举报