Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  EPLAN Electric P8
  Insert windowmacro from API

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN
Autor Thema:  Insert windowmacro from API (3005 mal gelesen)
Express1
Mitglied
El-Designer

Sehen Sie sich das Profil von Express1 an!   Senden Sie eine Private Message an Express1  Schreiben Sie einen Gästebucheintrag für Express1

Beiträge: 3
Registriert: 18.12.2011

Electric P8 2.1

erstellt am: 18. Dez. 2011 10:41    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hi, I'm new here.

Maybe someone here can explain my question.
Is it possible to insert a macrowindow to an existing page in a project?

Find this in the EPLAN_API: public: void SetProject, I'm not sure if you can use it?

Creates today macros by

Project pProject = new ProjectManager().CurrentProject;
                        Eplan.EplApi.DataModel.Page oPage = new Eplan.EplApi.DataModel.Page();

                        PagePropertyList pNameParts = new PagePropertyList();
                        pNameParts.DESIGNATION_PLANT = "EB3";
                        pNameParts.DESIGNATION_LOCATION = "ET1";
                        pNameParts.PAGE_COUNTER = "10";
                     
                        DocumentTypeManager.DocumentType nType = new DocumentTypeManager.DocumentType();

                        nType = DocumentTypeManager.DocumentType.Circuit;
                       
                        oPage.Create(pProject, nType, pNameParts);

                        PointD oPlacement = new PointD(300.0, 200.0);

                        Eplan.EplApi.HEServices.Insert oInsert = new Eplan.EplApi.HEServices.Insert();

                        StorableObject[] arrStorableObjects = oInsert.WindowMacro(strEMAFileName, 0, oPage,  oPlacement, Insert.MoveKind.Absolute);

                        oPage.Properties.PAGE_NOMINATIOMN = "Power Circuit";


Then I have to always create a new page and can not put the macro in an existing page.

Anyway, very nice forum....

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

FML
Mitglied



Sehen Sie sich das Profil von FML an!   Senden Sie eine Private Message an FML  Schreiben Sie einen Gästebucheintrag für FML

Beiträge: 491
Registriert: 11.03.2002

Aktuell:
EPLAN Electric P8 Professional
V 2.6 HF2
V 2.7
V 2.7 Education<P>Eplan Fluid Add On
Eplan ProPanel Add On
Electric P8 API
EEC
Systeme:
MS WINDOWS 10
MS WINDOWS 7
MS WINDOWS 2016 Server
MS WINDOWS SQL Server

erstellt am: 19. Dez. 2011 09:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Express1 10 Unities + Antwort hilfreich

Hi,

Zitat:
Is it possible to insert a macrowindow to an existing page in a project?

Yes.

In the example with the statement

Zitat:
Eplan.EplApi.DataModel.Page oPage = new Eplan.EplApi.DataModel.Page();

you create a new page.

If you want to place a macro to an existing page you have to identify the object handle of the wanted page and give it to the
Insert.WindowMacro Method.

Hope this will help you.
Fritz

------------------
Um zu sehen, musst Du die Augen offen halten.
Um zu erkennen, musst Du sie schliessen und denken.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Express1
Mitglied
El-Designer

Sehen Sie sich das Profil von Express1 an!   Senden Sie eine Private Message an Express1  Schreiben Sie einen Gästebucheintrag für Express1

Beiträge: 3
Registriert: 18.12.2011

Electric P8 2.1

erstellt am: 19. Dez. 2011 18:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Thanks Fritz,

Do you have any suggestions how?
I'm not quite sure of it, still a beginner at this.

Thanks anyway Fritz...

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

FML
Mitglied



Sehen Sie sich das Profil von FML an!   Senden Sie eine Private Message an FML  Schreiben Sie einen Gästebucheintrag für FML

Beiträge: 491
Registriert: 11.03.2002

Aktuell:
EPLAN Electric P8 Professional
V 2.6 HF2
V 2.7
V 2.7 Education<P>Eplan Fluid Add On
Eplan ProPanel Add On
Electric P8 API
EEC
Systeme:
MS WINDOWS 10
MS WINDOWS 7
MS WINDOWS 2016 Server
MS WINDOWS SQL Server

erstellt am: 19. Dez. 2011 23:19    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Express1 10 Unities + Antwort hilfreich

Hi,

basically you need an DMObjectsFinder, a PagesFilter and a PagePropertyList.
For example you want to filter all pages in your project that will have a Designation_Plant = "M1" you have do to somthing like that:


DMObjectsFinder objFinder = new DMObjectsFinder(m_oProject);
PagesFilter pagesFilter = new PagesFilter();
PagePropertyList ppl = new PagePropertyList();

ppl.DESIGNATION_PLANT = "M1";
pagesFilter.SetFilteredPropertyList(ppl);
Page[] pgsM1 = objFinder.GetPages(pagesFilter);

foreach (Page page in pgsM1)
{
.....
}

You can filter as well for DocumentTypes like "TableOfContents" or "Circuit" etc.

.....
pagesFilter.DocumentType = DocumentTypeManager.DocumentType.Circuit;
Page[] circuitpages = objFinder.GetPages(pagesFilter);
.....

First you have to identify your needed Page Object handle, with constructs as shown above.

Perhaps you can have a look to the german EPLAN Forum there is a special thread for the P8 API with some examples.

------------------
Um zu sehen, musst Du die Augen offen halten.
Um zu erkennen, musst Du sie schliessen und denken.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz