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

}

 

你可能感兴趣的:(api)