| |
| E3.series 2023 mit erweiterter 3D-Funktionalität bei Schaltschrankaufbau und Kabelbaumplanung, eine Pressemitteilung
|
Autor
|
Thema: Automatische Klemmen Nummerierung im Schaltschrank (2990 / mal gelesen)
|
ThomasE3 Mitglied
Beiträge: 10 Registriert: 15.01.2016
|
erstellt am: 15. Jan. 2016 15:34 <-- editieren / zitieren --> Unities abgeben:
Hallo E3Series Team, Ich hätte gerne gewußt wie ich Klemmen in einem bestehenden E3 Panel Plan, automatisch sortieren UND nummerieren kann. Die automatische Sortierung funktioniert nur wenn die Klemmen im Bauteilbaum zu einer Gruppe zusammengefasst sind. Aber dann ist das eingeblendete Atrribut im EPlan immer gleich (Siehe Bild Beispiel Art/Zählernummer = Y10). Ziel ist es während der Planung die Klemmen flexibel schieben zu können und am Ende dann alle Klemmen von links nach rechts mit der Nummer 1-100 durchnummeriert zu haben. Betrifft E3 Series Version 2012 Vielen Dank Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 271 Registriert: 06.02.2006
|
erstellt am: 15. Jan. 2016 16:32 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasE3
Hallo Thomas, willkommen im Forum. Wenn ich es richtig verstehe sind Deine Klemmen unter einer Klemmleiste (graues Symbol im Betriebsmittelbaum) Ich vermute jetzt mal, dass Du nicht pro Klemme ein Betriebsmittelkennzeichen möchtest (ich glaube das geht nicht) Du kannst die Anschlusspunktnamen ändern, aber ich weiß nicht ob das Dein Ziel ist. Grundsätzlich wird im Text Betriebsmittelkennzeichen (BMK) an der Klemme immer das BMK der Klemmleiste angezeigt. im Text Anschlußpunktname wird der Name der Klemme angezeigt ( im Regelfall wenn die alle Anschlusspunkte gleich heißen ). Ich bin jetzt aber nicht so der Klemmenspezialist ;-) Das Vorgehen würde jetzt die Anschlußpunkte umbennenen und damit auch den Namen der Klemme: - Betriebsmitteleigenschaften auf die Klemmleiste öffnen - Reiter Anschlusspunkt-Namen - 1. Anschlussname -> '1' - In der Tabelle unten Bei Neuer Wert -Y$ - OK Vielleicht kannst Du noch ein Screenshot von Deinem Betriebsmittelbaum machen. Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasE3 Mitglied
Beiträge: 10 Registriert: 15.01.2016
|
erstellt am: 16. Jan. 2016 17:44 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörg, Danke für die rasche Antwort. So könnte ich es machen. Nachteil ist jedoch, dass die BMK immer gleich bleibt und daher nicht mit der Beschriftung der "echten" Klemmen übereinstimmt. Für die echten Klemmen habe ich bereits vorgedruckte Schilder von 1-100. Dann könnte ich maximal mit der "externen" Sortierung die L AnschlussPins der Klemmen aufsteigend nummerieren um so eine Zuordnung zu den echten Schilder zu bekommen. Und das nur wenn die Klemmen annähernd gleich sind. Wünschen würde ich mir eine fortlaufende BMK. Siehe Anhang Beispiel2.jpg. In diesem Beispiel müsste ich händisch jedoch die Klemmen Y316 auf Y16, die Klemm Y317 auf Y17 usw umbennen. Geht das nicht mit irgendeiner Sortierfunktion ? LG Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 271 Registriert: 06.02.2006
|
erstellt am: 18. Jan. 2016 17:22 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasE3
Hallo Thomas, ich weiß was Du meinst. Ich kenne aber leider keine einfache Lösung für Dein Problem. Du möchtest ja anhand der Platzierung im Schaltschrank die BMKs aufsteigend vergeben (z.B. von links nach rechts). Das einzige was mir einfallen würde, wäre über die COM Schnittstelle ein Skript anzuwerfen, welches z.B. anhand einer bestimmten Selektion im Schaltschrank die BMKs vergibt. Da müsste man aber ein bisschen Schmalz rein stecken, dass ist sicherlich nicht so trivial. Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasE3 Mitglied
Beiträge: 10 Registriert: 15.01.2016
|
erstellt am: 18. Jan. 2016 18:02 <-- editieren / zitieren --> Unities abgeben:
|
K0NFUZIUS Moderator
Beiträge: 271 Registriert: 06.02.2006
|
erstellt am: 19. Jan. 2016 13:38 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasE3
|
K0NFUZIUS Moderator
Beiträge: 271 Registriert: 06.02.2006
|
erstellt am: 21. Jan. 2016 10:48 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasE3
Hallo Thomas, Du kannst den unten stehenden Sourcecode mal in eine Datei kopieren. Diese muss die Dateiendung vbs haben (also z.B. rename.vbs) Wenn Du im E3 auf dem Schaltschrankplan Deine zu umbenennenden Klemmen selektierst und dann das Skript startest, dann musst Du zuerst den Kennbuchstabe eingeben (z.B. Y) und danach die Start Zahl z.B. 1 Das Skript benennt dann Deine einzelnen Klemmleiste automatisch von -Y1 bis -Yn ( von links nach rechts ) Das geht bestimmt noch schöner aber vielleicht hilft es Dir.. und jetzt Get back to making cool stuff!
Code:
Set e3 = CreateObject( "CT.Application" ) Set prj = e3.CreateJobObject() Set dev = prj.CreateDeviceObject() Set cor = prj.CreatePinObject() dim kennbuchstabe kennbuchstabe=inputbox ("Kennbuchstabe eingeben:","Kennbuchstabe","Y")
dim startWert startWert=inputbox ("Startindex eingeben:","Startindex","1") e3.ClearOutputWindow Class mySortClass Dim x Dim y Dim item End Class Set myArrayList = CreateObject( "System.Collections.ArrayList" ) symcnt = prj.GetSelectedSymbolIds( symids ) For i = 1 to symcnt dev.Setid symids(i) e3.putInfo 0, dev.GetName() +"" dev.GetPanelLocation x, y, z, rot, piv Dim obj Set obj = New mySortClass obj.x = x obj.y = y obj.item = dev.GetId() myArrayList.Add obj next 'BUBBLE IT! Dim temp for a = myArrayList.Count() - 1 To 0 Step -1 for j = 0 to a -1 if myArrayList(j).x > myArrayList(j+1).x then Set temp = New mySortClass temp.x = myArrayList(j+1).x temp.y = myArrayList(j+1).y temp.item = myArrayList(j+1).item myArrayList(j+1)=myArrayList(j) myArrayList(j)=temp elseif myArrayList(j).x = myArrayList(j+1).x And myArrayList(j).y > myArrayList(j+1).y then Set temp = New mySortClass temp.x = myArrayList(j+1).x temp.y = myArrayList(j+1).y temp.item = myArrayList(j+1).item myArrayList(j+1)=myArrayList(j) myArrayList(j)=temp end if next next For i = 0 to myArrayList.Count() - 1 dev.Setid myArrayList( i ).item e3.putinfo 0, myArrayList( i ).x & "|" & myArrayList( i ).y & "|" & myArrayList( i ).item & "|" & dev.GetName() next ' Temporäres BMK vergeben For i = 0 to myArrayList.Count() - 1 dev.Setid myArrayList( i ).item dev.setName( "TEMP"& i+1 ) next For i = 0 to myArrayList.Count() - 1 dev.Setid myArrayList( i ).item dev.setName( kennbuchstabe& startWert+i ) next Set prj = Nothing Set dev = Nothing Set cor = Nothing
[Diese Nachricht wurde von K0NFUZIUS am 21. Jan. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasE3 Mitglied
Beiträge: 10 Registriert: 15.01.2016
|
erstellt am: 22. Jan. 2016 13:00 <-- editieren / zitieren --> Unities abgeben:
|
K0NFUZIUS Moderator
Beiträge: 271 Registriert: 06.02.2006
|
erstellt am: 22. Jan. 2016 14:30 <-- editieren / zitieren --> Unities abgeben: Nur für ThomasE3
|