Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  EPLAN Electric P8
  Makro via API auf Seite einfügen

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
  
Eplan feiert 40 Jahre: Vom Start-up zum Marktführer, eine Pressemitteilung
Autor Thema:  Makro via API auf Seite einfügen (2482 mal gelesen)
Erowa
Mitglied



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

Beiträge: 11
Registriert: 26.01.2012

Microsoft Visual C# 2010 Express
EPLAN Electric P8, V2.1 SP1

erstellt am: 26. Jan. 2012 08:56    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

Hallo Zusammen

Ich habe in C# eine grafische Oberfläche erstellt um oft verwendete Makros schnell auszuwählen und auf der aktuellen Seite einzufügen.

Als Beispiel:
if (rbnMT1.Checked)
            {
                parameter.AddParameter("FILENAME", strPfad_rbnMTx);
                parameter.AddParameter("VARIANT", "0");
                oCLI.Execute("XGedStartInteractionAction /Name:XMIaInsertMacro", parameter);             
            }

=> funktioniert einwandfrei...

Nun möchte ich das Makro jedoch direkt an einer bestimmten Position absetzen und zwar auf der aktuell geöffneten Seite.

Ist dazu die Klasse "Eplan.EplApi.HEServices.Insert" die richtige? Wenn ja, wie kann ich die Variable "Page" mit meiner aktuellen Seite definieren??
Das Makro soll direkt an der angegebene Position eingefügt werden, ohni weitere Eingaben (Mausklick) durch den Benutzer.
Beispielcode wäre sehr hilfreich...

Vielen Dank für eure Hilfe.

Gruss

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

Straight-Potter
Mitglied
Dipl.Ing. E-Technik


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

Beiträge: 601
Registriert: 14.07.2008

EPLAN Plattform 2.9 SP1
API
EEC Prof
EEC One

erstellt am: 26. Jan. 2012 10:18    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 Erowa 10 Unities + Antwort hilfreich

Du musst die aktuell markierte Seite holen über die

SelectionSet::GetSelectedPages Method (in der Hilfe nachschauen!)

Straight-Potter

------------------
Wenn wir bedenken, dass wir alle verrückt
sind, ist das Leben erklärt.

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

Straight-Potter
Mitglied
Dipl.Ing. E-Technik


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

Beiträge: 601
Registriert: 14.07.2008

EPLAN Plattform 2.9 SP1
API
EEC Prof
EEC One

erstellt am: 27. Jan. 2012 10:40    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 Erowa 10 Unities + Antwort hilfreich

Hier auch mal ein kleines Beisoiel in C#! Hier bekommst du alle markierten Seiten in einem Array zurück. Die foreach-Schleife gibt dann den Seitenname(Identifizierend) aus...

Gibt verschiedene Möglichkeiten die Seiten zu bekommen, das ist mal eine!

Code:

SelectionSet oSel = new SelectionSet();
StorableObject[] oStore = null;
oStore = oSel.GetSelectedPages();

        foreach(Page oPage in oStore)
        {
            MessageBox.Show(oPage.IdentifyingName);
        }


------------------
Wenn wir bedenken, dass wir alle verrückt
sind, ist das Leben erklärt.

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

Erowa
Mitglied



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

Beiträge: 11
Registriert: 26.01.2012

Microsoft Visual C# 2010 Express
EPLAN Electric P8, V2.1 SP1

erstellt am: 27. Jan. 2012 11:10    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

Hallo Straight-Potter

Vielen Dank für deinen Hinweis. Ich habe das gestern mal probiert... jedoch habe ich noch ein Problem bei der Definition der oPage Variable (wie bringe ich den Namen der aktuellen seite in die Variable oPage?)

Ich will die folgende Funktion nutzen:

{
PointD oPointD = new PointD(40.0, 40.0);
Insert oInsert = new Insert();           
Page oPage = new Page();             
SelectionSet selectionSet = new SelectionSet();           
StorableObject[] oStore = selectionSet.GetSelectedPages();

oPage = ???????

oInsert.SymbolMacro(strPfad_rbnMTx, 0, oPage, oPointD, Insert.MoveKind.Absolute);
}


Gruss

[Diese Nachricht wurde von Erowa am 27. Jan. 2012 editiert.]

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



Fachplaner für Elektrotechnik (m/w/d)

Wir sind eine international tätige Unternehmensgruppe der Automatisierungstechnik und beschäftigen über 1.000 Mitarbeiter und Mitarbeiterinnen an diversen Standorten. Entwickelt werden speziell auf den jeweiligen Kundenwunsch zugeschnittene Lösungskonzepte für Unternehmen aus den verschiedensten Branchen - vom Mittelstand bis zur Großindustrie.

Zur Verstärkung unseres Teams suchen wir am ...

Anzeige ansehenFeste Anstellung
Straight-Potter
Mitglied
Dipl.Ing. E-Technik


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

Beiträge: 601
Registriert: 14.07.2008

EPLAN Plattform 2.9 SP1
API
EEC Prof
EEC One

erstellt am: 27. Jan. 2012 13:28    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 Erowa 10 Unities + Antwort hilfreich

Also
mit
Code:
StorableObject[] oStore = selectionSet.GetSelectedPages();


bekommst du ALLE selektierten Seiten zurück.

Du kannst prüfen ob du nur eine Seite markiert hast und die der Variable oPage zuordnen:

Code:

//Hier wird erst mit eine if-Abfrage geprüft ob eine Seite markiert ist und ob es auch nur eine ist(und nicht mehrere!)
if (oSel.IsPageSelected && oStore.Length == 1)
            {
                //Hier wird das selektierte Storeableobjekt in ein Objekt vom Typ Seite konvertiert
                Page oPage1 = (Page)oStore[0];
                //ab hier hast du deine Seite in oPage1 und könntest nun dein Makro einfügen!!!
                MessageBox.Show(oPage1.IdentifyingName);
            }

Wenn mehrere Seiten markiert wurden musst du das Array durchsuchen und die gewünschte Seite rausholen (geht mit der Foreach-Schleife!!!)

Straight-Potter

------------------
Wenn wir bedenken, dass wir alle verrückt
sind, ist das Leben erklärt.

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)2024 CAD.de | Impressum | Datenschutz