| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für EPLAN |
Autor
|
Thema: Eplan API (6146 mal gelesen)
|
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 08:07 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen! Ja ich bins schon wieder ... Nachdem mir mittlerweile Eplan (vorallem über die API) immer unsympathischer wird habe ich noch ein paar Fragen an euch! 1) Da im Eplan der Seitenname eigentlich die Seitennummer ist und die Seitenbeschreibung eigentlich den Seitennamen darstellt ( ) möchte ich gerne mit c# über die Api im die Seitenbeschreibung ändern. mit Code:
Code: oPagePropList.PAGE_COUNTER = strPageName;
wird die Seiten"nummer" richtig bei Seitenname in Eplan eingefügt, nur mit Code: Code: oPagePropList.PAGE_FULLNAME = "test"; oPagePropList.PAGE_NAME = "test";
kann ich zum Beispiel nicht die Seitenbeschreibung (was eigentlich der Name der Seite wäre) ändern. Ich hoffe mir kann wer sagen mit was für einen Parameter ich die Seitenbeschreibung ändern kann 2) Wenn ich Makros auf einer Seite platzieren möchte mit Insert, das aus der Klasse Code: Eplan.EplApi.HEServices.Insert oInsert = new Eplan.EplApi.HEServices.Insert();
abgeleit wird, kommt immer eine "FileNotFoundException"Die benötigte "Eplan.EplApi.HEServicesu.dll" wurde eingebunden, auch im GAC habe ich die dlls hinzugefügt, aber ohne Wirkung... Hat jemand eine Ahnung an was das liegen könnte?) (natürlich wurde auch ein using.Eplan.EplApi.HEServices verwendet)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 23. Jan. 2009 08:15 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
Zu 1 Wurde dir doch bereits im EPLAN-API-Forum beantwortet Geht über: PAGE_NOMINATIOMN Zu 2 Die bekommst ein StorableObject zurück also auch einem zuweisen Siehe hier (aus der API Hilfe ) StorableObject[] arrStorableObjects = oInsert.WindowMacro(strWMacroPath,0,m_oSchematicPage,oPointD, Insert.MOVE_KIND.eAbsolute); 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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 08:20 <-- editieren / zitieren --> Unities abgeben:
Ja ich weis aber wenn ich Code: oPagePropList.PAGE_NOMINATIOMN = "Seitenname";
änderst sich genau - nichts! und zu dem zweiten:
Code: PointD oPointD = new PointD(50.0, 50.0); Insert oInsert = new Insert(); StorableObject[] arrStorableObjects = oInsert.WindowMacro(strWMacroPath, 0, oOpenProject, oPointD, Insert.MoveKind.Absolute);
habe ich schon das ganze verwendet, aber trotzdem kommt eine FileNotFoundException Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 23. Jan. 2009 08:32 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
Hallo 1) Achtung! Hier handelt es sich um einen MultiLangString ! Mit einem String kann das schief gehen! 2) MMhh spontan würde ich sagen: - Macropfad falsch? - Angabe auf welcher Seite es platziert werden soll fehlt? 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
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 23. Jan. 2009 08:36 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
Noch ein Tipp Wenn du nach einem Befehl suchst um eine Eigenschaft zu ändern, schau auch mal in die P8 Hilfe (Bild) Warst du auf der API-Schulung? 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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 08:46 <-- editieren / zitieren --> Unities abgeben:
So wenn ich Code: MultiLangString mlstrPageDesc = new MultiLangString(); mlstrPageDesc.AddString(ISOCode.Language.L___, "API-Testseite");
bleibt, wie könnte es sein die Spalte im Eplan->Seiteneigenschaften->Seitenbeschreibung leer, aber anscheinend muss es das sein, wenn es in der Hilfe so abgebildet ist. Und, nein ich war auf keiner API schulung, vl liegts daran Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 23. Jan. 2009 08:52 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
Vielleicht liegt es an der propList Ich habe in einem meiner Codes das stehen Code: oPage.Properties.PAGE_NOMINATIOMN = xlsBlatt.Cells(x + 2, 1).value.ToString()
Also lese ich erst einen Wert aus Excel aus und weise dann zu.. Funktioniert tadellos... @API - Schulung Das ist ein MUSS. Sonnst hast du keinen Spass 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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 08:54 <-- editieren / zitieren --> Unities abgeben:
|
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 09:13 <-- editieren / zitieren --> Unities abgeben:
Hey das mit den Seitenname hat funktioniert, man darf den wert erst nach dem erstellen der Seite zuweisen und nicht wie bei zB Page_counter vorher jetzt noch das mit den Makros und mein tag wäre gerettet Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 09:44 <-- editieren / zitieren --> Unities abgeben:
|
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 23. Jan. 2009 09:56 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
|
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 10:17 <-- editieren / zitieren --> Unities abgeben:
Also die using direktiven Code: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using Eplan.EplApi.System; using Eplan.EplApi.DataModel; using Eplan.EplApi.DataModel.MasterData; using Eplan.EplApi.Base; using Eplan.EplApi.HEServices;
und nun das Coding für Makros: Code: string strWMacroPath = string.Empty; OpenFileDialog opfMacroPath = new OpenFileDialog(); opfMacroPath.InitialDirectory = (@"C:\Program Files\EPLAN\Electric P8\Makros\Autforce\Makroprojekt"); opfMacroPath.Filter = ("*.ems Macros|*.ems");
if (opfMacroPath.ShowDialog() == DialogResult.OK) { strWMacroPath = opfMacroPath.FileName; } if (System.IO.File.Exists(strWMacroPath)) { PointD oPointD = new PointD(50.0, 50.0); Eplan.EplApi.HEServices.Insert oInsert = new Eplan.EplApi.HEServices.Insert(); StorableObject[] arrStorableObjects = oInsert.WindowMacro(strWMacroPath,1, oNewPage, oPointD, Insert.MoveKind.Absolute); }
Also wie man sieht, den Pfad für die Makros hohl ich mir mit einer OpenFile Funktion und dann sollte er eigentlich in der seite "oNewPage" ein Makro einfügen, nur kommt er eben nur bis zum oInsert, was heißt sobald er auf die HEServices zugreifen will kommt eine FileNotFOundException... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 23. Jan. 2009 10:24 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
StorableObject[] arrStorableObjects = oInsert.WindowMacro(strWMacroPath,1, oNewPage, oPointD, Insert.MoveKind.Absolute); Also: 1 bedeutet Variante B --> gibts die??? ist oNewPage auch eine Seite zugewiesen??? Ist die HEservices.dll auch im BIN Ordner exsistent? Ansonsten sieht das doch prima aus!! 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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 10:27 <-- editieren / zitieren --> Unities abgeben:
Okay das mit der 1 war nur eine spielerei, aber gut zu wissen das dass die Varianten sind ja mit Code: oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.Circuit, oPagePropList);
wird die seite zuerst erstellt und dann sollte eigentlich das Makro hinzugefügt werden. und ja die dlls sind alle im Debug und im BIN Ordner. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 23. Jan. 2009 11:20 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
Das einzige was ich jetzt noch versuchen würde ist mal einen festen Pfad einzutragen, statt über den openfiledialog zu gehen... Code: oInsert.WindowMacro("Hier liegt das Makro",0, oNewPage, oPointD, Insert.MoveKind.Absolute);
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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 11:22 <-- editieren / zitieren --> Unities abgeben:
|
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 23. Jan. 2009 11:25 <-- editieren / zitieren --> Unities abgeben:
|
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 26. Jan. 2009 11:14 <-- editieren / zitieren --> Unities abgeben:
|
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 26. Jan. 2009 11:21 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
Was ist den CreatePageWithMacro(); ? Ist das eine Funktion von dir geschrieben? Kannst du diese (Code) mal komplett posten? 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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 26. Jan. 2009 11:22 <-- editieren / zitieren --> Unities abgeben:
Hey! Das ist eine CreatePageWithMacro Methode Code: public void CreatePageWithMacro() { string strProjectPath = strCurrentPath; string strPageAnlageKe = txtAddBxAnlagenKe.Text; string strPageOrtsKe = txtBxAddOrtsKennung.Text; string strPageName = txtBxAddPageName.Text; string strPageType = comBxAddPageType.Text; string strSeitenName = txtBxSeitenName.Text; MultiLangString mLstr_PageDesc = new MultiLangString(); mLstr_PageDesc.AddString(ISOCode.Language.L___, strSeitenName); string strfailure = ""; if (new ProjectManager().ExistsProject(strProjectPath)) { using (LockingStep ls1 = new LockingStep()) { Project oOpenProject = new ProjectManager().OpenProject(strProjectPath);
Eplan.EplApi.DataModel.Page oNewPage = new Eplan.EplApi.DataModel.Page(); //Creating of a page in the empty Eplan project //create new Schematic page in current project PagePropertyList oPagePropList = new PagePropertyList(); oPagePropList.DESIGNATION_PLANT = strPageAnlageKe; //set Plant oPagePropList.DESIGNATION_LOCATION = strPageOrtsKe; //set Location oPagePropList.PAGE_COUNTER = strPageName; //set Page Description try { if (strPageType == "Titel -/ Deckblatt") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.TitlePage, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F26_001"; } else if (strPageType == "Schaltplan (allpolig)") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.Circuit, oPagePropList); SeiteErstellt(); } else if (strPageType == "Übersicht") {
oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.Overview, oPagePropList); SeiteErstellt(); } else if (strPageType == "Artikelstückliste") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PartsList, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F01_001"; SeiteErstellt(); } else if (strPageType == "Artikelsummenstückliste") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PartsSumList, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F02_001"; SeiteErstellt(); } else if (strPageType == "Betriebsmittelliste") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.DeviceList, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F03_001"; SeiteErstellt(); } else if (strPageType == "Formulardokumentation") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.FormOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F04_001"; SeiteErstellt(); } else if (strPageType == "Geräteanschlussplan") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.DeviceConnectionDiagram, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F05_001"; SeiteErstellt(); } else if (strPageType == "Inhaltsverzeichnis") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.TableOfContents, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F06_001"; SeiteErstellt(); } else if (strPageType == "Kabelanschlussplan") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.CableConnectionDiagram, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F07_001"; SeiteErstellt(); } else if (strPageType == "Kabeldarstellungsplan") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.CableLayout, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F08_001"; SeiteErstellt(); } else if (strPageType == "Kabelplan") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.InterconnectDiagram, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F09_001"; SeiteErstellt(); } else if (strPageType == "Kabelübersicht") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.CableOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F10_001"; SeiteErstellt(); } else if (strPageType == "Klemmenanschlussplan") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.TerminalConnectiondiagram, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F11_001"; SeiteErstellt(); } else if (strPageType == "Klemmenaufreihplan") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.TerminalLineupDiagram, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F12_001"; SeiteErstellt(); } else if (strPageType == "Klemmenplan") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.TerminalDiagram, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F13_001"; SeiteErstellt(); } else if (strPageType == "Klemmenleistenübersicht") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.TerminalStripOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F14_001"; SeiteErstellt(); } else if (strPageType == "Normblattdokumentation") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.FrameOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F15_001"; SeiteErstellt(); } /*else if (strPageType == "Platzhalterobjektenübersicht") { //oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.LogocadTriga, oPagePropList); //oNewPage.Properties.PAGE_FORMULAR = "F30_001"; }*/ else if (strPageType == "Potenzialübersicht") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PotentialOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F16_001"; SeiteErstellt(); } /*else if (strPageType == "Projektoptionenübersicht") { //oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PairCrossReference, oPagePropList); //oNewPage.Properties.PAGE_FORMULAR = "F29_001"; }*/ else if (strPageType == "Revisionsübersicht") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.RevisionOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F17_001"; SeiteErstellt(); } else if (strPageType == "SPS-Diagramm") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PLCDiagram, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F19_001"; SeiteErstellt(); } else if (strPageType == "SPS-Kartenübersicht") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PLCCardOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F20_001"; SeiteErstellt(); } else if (strPageType == "Schaltschranklegende") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PanelLayoutCaption, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F18_001"; SeiteErstellt(); } else if (strPageType == "Steckeranschlussplan") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PlugConnectionDiagram, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F21_001"; SeiteErstellt(); } else if (strPageType == "Steckerplan") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PlugDiagram, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F22_001"; SeiteErstellt(); } else if (strPageType == "Steckerübersicht") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.PlugOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F23_001"; SeiteErstellt(); } else if (strPageType == "Strukturkennzeichenübersicht") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.StructIdentifierOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F24_001"; SeiteErstellt(); } else if (strPageType == "Symbolübersicht") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.SymbolOverview, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F25_001"; SeiteErstellt(); } else if (strPageType == "Verbindungsliste") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.ConnectionList, oPagePropList); oNewPage.Properties.PAGE_FORMULAR = "F27_001"; SeiteErstellt(); } else if (strPageType == "Grafik") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.Graphics, oPagePropList); SeiteErstellt(); } else if (strPageType == "Schaltplan (einpolig)") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.CircuitSingleLine, oPagePropList); SeiteErstellt(); } else if (strPageType == "Schaltplan Fluid") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.CircuitFluid, oPagePropList); SeiteErstellt(); } else if (strPageType == "RI-Fließbild") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.ProcessAndInstrumentationDiagram, oPagePropList); SeiteErstellt(); } else if (strPageType == "Fremddokument") { oNewPage.Create(oOpenProject, DocumentTypeManager.DocumentType.ExternalDocument, oPagePropList); SeiteErstellt(); } else { strfailure = "Seite konnte nicht erstellt werden!\n\nBitte überprüfen Sie ihre Einstellungen für den Seitentyp"; MainForm neuu = new MainForm(); neuu.ErrorPageCreating(strfailure); } } catch { MessageBox.Show("Überprüfen sie ob eine Seite mit den gleichen Einstellungen schon exisitiert", "Error"); } OpenFileDialog opfMacroPath = new OpenFileDialog(); opfMacroPath.InitialDirectory = (@"C:\Program Files\EPLAN\Electric P8\Makros\Autforce\Makroprojekt"); opfMacroPath.Filter = ("*.ems Symbol Macros|*.ems"); opfMacroPath.Title = "Welches Makro möchten Sie einfügen?"; if (opfMacroPath.ShowDialog() == DialogResult.OK) { strWMacroPath = opfMacroPath.FileName; } if (System.IO.File.Exists(strWMacroPath)) {
PointD oPointD = new PointD(50.0, 50.0); Eplan.EplApi.HEServices.Insert oInsert = new Eplan.EplApi.HEServices.Insert(); StorableObject[] arrStorableObjects = oInsert.WindowMacro(strWMacroPath, 0, oNewPage, oPointD, Insert.MoveKind.Absolute); } oNewPage.Properties.PAGE_NOMINATIOMN = mLstr_PageDesc; // PageDescription oOpenProject.Close(); } } else { MessageBox.Show("Projekt konnte nicht geöffnet werden", "Error"); }
}
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 26. Jan. 2009 11:31 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
string strProjectPath = strCurrentPath; string strPageAnlageKe = txtAddBxAnlagenKe.Text; string strPageOrtsKe = txtBxAddOrtsKennung.Text; string strPageName = txtBxAddPageName.Text; string strPageType = comBxAddPageType.Text; string strSeitenName = txtBxSeitenName.Text; Woher nimmt er diese Info´s?
------------------ 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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 26. Jan. 2009 11:32 <-- editieren / zitieren --> Unities abgeben:
|
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 26. Jan. 2009 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
|
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 26. Jan. 2009 11:41 <-- editieren / zitieren --> Unities abgeben:
Aso ja der wird aus der MainForm Klasse mitübergeben! Aber wenn ich die beiden Zeilen: Code: Eplan.EplApi.HEServices.Insert oInsert = new Eplan.EplApi.HEServices.Insert(); StorableObject[] arrStorableObjects = oInsert.WindowMacro(strWMacroPath, 0, oNewPage, oPointD, Insert.MoveKind.Absolute);
auskommentiere, erstellt er mir, wie er auch soll eine Seite mit den ganzen Einstellungen, nur eben halt ohne Makro. Lasse ich die beiden Zeilen jedoch drinnen im Coding, dann kommt diese ominöse Fehlermeldung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 26. Jan. 2009 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
Zitat: Original erstellt von patzi88: Aso ja der wird aus der MainForm Klasse mitübergeben!Aber wenn ich die beiden Zeilen: Code: Eplan.EplApi.HEServices.Insert oInsert = new Eplan.EplApi.HEServices.Insert(); StorableObject[] arrStorableObjects = oInsert.WindowMacro(strWMacroPath, 0, oNewPage, oPointD, Insert.MoveKind.Absolute);
auskommentiere, erstellt er mir, wie er auch soll eine Seite mit den ganzen Einstellungen, nur eben halt ohne Makro. Lasse ich die beiden Zeilen jedoch drinnen im Coding, dann kommt diese ominöse Fehlermeldung
Das ist wirklich sehr merkwürdig... Weiss ich jetzt auch nciht weiter...
Tipp: Schreib nur
Code: Insert oInsert = new Insert();
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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 26. Jan. 2009 11:57 <-- editieren / zitieren --> Unities abgeben:
Skurillerweise brachte auch das nicht die gewünschte Änderung des Problems. Code: Insert oInsert = new Insert();
Vielleicht müssen im VS selsbt Einstellungen getätigt werden. Das Working Directory liegt auf den BIN Ordner in EPlan, auch alle Dlls sind in diesem Ordner. Auch alle usings sind eingesetzt... Muss ich evt noch eine Einstellung vornehmen? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 26. Jan. 2009 12:01 <-- editieren / zitieren --> Unities abgeben:
|
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 26. Jan. 2009 12:04 <-- editieren / zitieren --> Unities abgeben:
|
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 26. Jan. 2009 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
Na dann viel Spass noch... Frage: Was genau programmierst du da eigentlich ?? Sieht interessant aus... 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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 26. Jan. 2009 12:06 <-- editieren / zitieren --> Unities abgeben:
Im endeffekt sollen Projekte bzw vorlagen automatisch erstellt werden können und dadurch ein effizenteres Arbeiten ermöglicht werden. Also ein Eplan Light mit den wichtigsten Funktionen übersichtlicher zusammengefasst Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 27. Jan. 2009 08:10 <-- editieren / zitieren --> Unities abgeben:
|
Straight-Potter Mitglied Dipl.Ing. E-Technik
Beiträge: 601 Registriert: 14.07.2008 EPLAN Plattform 2.9 SP1 API EEC Prof EEC One
|
erstellt am: 27. Jan. 2009 08:17 <-- editieren / zitieren --> Unities abgeben: Nur für patzi88
Moin Moin... Schau mal in der API Hilfe unter EPLAN API > User Guide > API Higher Electrotechnical Services > Displaying a preview Habs selbst noch nicht getestet, aber über ein Feedback von dir obs funz wäre ich dankbar 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 |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 27. Jan. 2009 08:19 <-- editieren / zitieren --> Unities abgeben:
|
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 27. Jan. 2009 10:39 <-- editieren / zitieren --> Unities abgeben:
Soda nach intensiven testen habe ich nicht wirklich eine lauffähige Vorschau zustande gebracht... Hoffe mal das sich sie Hotline bald meldet, bzw. werde ich dann die Lösung hier posten... Oder vielleicht findet sich hier noch jemand der das schon gelöst hat. lg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
patzi88 Mitglied Sw-Entwickler
Beiträge: 40 Registriert: 19.01.2009
|
erstellt am: 28. Jan. 2009 07:55 <-- editieren / zitieren --> Unities abgeben:
Guten Morgen! Es hat tatsächlich funktioniert eine Vorschau von einen Makro zu zeichnen! Das einzige Problem ist noch mit den Varianten das er mir andere anzeigt als das er dann endgültigt in projekt auf die Seite einfügt... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ex-Mitglied
|
erstellt am: 19. Mai. 2009 11:44 <-- editieren / zitieren -->
Zitat: Original erstellt von patzi88: Nur eine Frage noch, wie kann ich einstellen das er den Einfügepunkt vom makro selbst nimmt, ohne das ich im Koordinaten zuweisen muss
Du musst vorher das Macro mit Mcro.Open laden und dann kannst Du statt dem Dateinamen das Makroobjekt und als PointD die Eigenschaft oMacro.ReferencePoint übergeben... Aber eine andere Frage: Wie errechnet man die Y-Position, wenn man den Rasterpunkt hat. Mein Macro hat z.B. Raster X=4/Y=47, was im ReferencePoint im Makro auf X=16 und Y=104 hinaus läuft. Die X-Koordinate ist ja einfach (X*4) aber Y komm ich einfach nicht hinter. Bei Eplan5 gabs einen Nullpunkt irgendwo bei 271,5, wenn ich nicht irre. Da musste man 271,5- Rasterpunkt * Raster rechnen. Hat da jemand Erfahrungen mit P8? ------------------ MfG Carsten Fischer DDT GmbH CAE-Zeichentechnik ELCAD, E³, COMOS, EPLAN |