| |
| CONTACT OPEN WORLD 2024, eine Veranstaltung am 12.11.2024
|
Autor
|
Thema: Mehrfachnutzung Stecker - Neues Attribut für Stecker (838 / mal gelesen)
|
JochenR Mitglied
Beiträge: 26 Registriert: 08.09.2015
|
erstellt am: 21. Okt. 2016 11:23 <-- editieren / zitieren --> Unities abgeben:
Hallo Community, ich stoße gerade auf folgendes Problem: Ich möchte in einem Schaltplan mehrere Stecker verwenden, die jedoch kein BMK erhalten sollen und jeweils nur ein Steckeranschlusspunkt-Name hat. Ziehe ich jetzt nun mehrere solcher Stecker in den Schaltplan und versuche die Steckeranschlusspunkt-Name zu ändern, kann ich diese nicht mehrfach nutzen. (Die tauschen sich gegenseitig immer aus) Ich muss dazu sagen, dass die Stecker frei im Schaltplan platziert sind und nicht an einem Block hängen. Ich dachte zunächst ich könne ein Attribut erstellen welches mehrere Instanzen erlaubt, allerdings erscheint dieses Attribut nicht in der Auswahlliste eines Steckers. Was mache ich falsch? Ist mein Gedankengang mit dem zusätzlichen Attribut überhaupt richtig? Gibt es hierzu eine andere Lösung für das Problem? Beste Grüße JochenR Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JochenR Mitglied
Beiträge: 26 Registriert: 08.09.2015
|
erstellt am: 21. Okt. 2016 14:00 <-- editieren / zitieren --> Unities abgeben:
Ich habe es hinbekommen, ich habe Anschlusspunktnamen genommen. Damit ging es. Noch eine Frage hinterher: In der Standard-Datenbank habe ich Stecker gefunden, bei denen automatisch der Gegenstecker hinzugefügt wird wenn man mit einer Verbindung andockt. Wo kann das eingestellt werden? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 271 Registriert: 06.02.2006
|
erstellt am: 24. Okt. 2016 08:31 <-- editieren / zitieren --> Unities abgeben: Nur für JochenR
Hallo Jochen, ich bin ein bisschen verwirrt :-) Ich fasse mal zusammen: Du hast in der Datenbank einen Stecker mit einem Anschlusspunkt definiert. Du möchtest diesen Stecker mehrfach auf dem Stromlaufplan platzieren. Die platzierten Stecker sollen aber kein Betriebsmittelkennzeichen bekommen. Grundsätzlich ist es nicht möglich Stecker ohne Betriebsmittelkennzeichen (bzw. nur einen Stecker ) ins Projekt zu laden. Du könntest aber symbolorientiert arbeiten und nur die Steckersymbole platzieren. Wenn Du symbolorientiert arbeitest, kannst Du allerdings kein automatisches Gegenstück definieren. Bei Steckern kannst Du im Datenbankeditor in den Bauteileigenschaften unter Anschlusspunkte den Gegenstecker definieren. Dazu wählst Du in der Tabelle zuerst das "Gültige Gegenstück" aus. Oben kannst Du es dann unter "Aktives Gegenstück" setzten. Mir ist noch nicht klar warum du Stecker ohne BMK ins Projekt laden willst
Gruß Jörg
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JochenR Mitglied
Beiträge: 26 Registriert: 08.09.2015
|
erstellt am: 24. Okt. 2016 09:50 <-- editieren / zitieren --> Unities abgeben:
Hallo KONFUZIUS, danke, hast mir schon weitergeholfen. Das keine BMK gebraucht wird, hat den Grund das keine BMK bekannt ist. Für den Nutzer reicht es zu wissen dass da überhaupt ein Stecker ist. Noch eine Frage hinterher: Ich habe mir die ganzen COM-Schnittstellen-Funktionen angeschaut, konnte aber diesen Anschlusspunktnamen nocht nicht per Skript ändern. Ich habe sym.SetAttributeValue ("Anschlusspunktname (1)", "100") genutzt, was mache ich falsch? Ich vermute ich habe die falsche genutzt, die E3s Hilfe bietet für dieses Problem leider kein Beispiel. Nächstes Jahr werde ich mich um eine Schulung bemühen, hoffe es klappt.
Gruß Jochen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
Beiträge: 271 Registriert: 06.02.2006
|
erstellt am: 24. Okt. 2016 10:32 <-- editieren / zitieren --> Unities abgeben: Nur für JochenR
Hallo Jochen, wenn ich es richtig verstehe setzt Du den Anschlusspunktnamen als Attribut, welches mehrfach vorkommen kann. Bsp: Anschlusspunktname (1), Anschlusspunktname (2),... Folgender CODEschnipsel schreibt Dir an Anschlusspunktname (1) -> 100 und an Anschlusspunktname (2) -> 200
Code:
attcnt = sym.Getattributeids( attids, "Anschlusspunktname") For i = 1 to attcnt att.setid( attids(i) ) testnumber = 100 *i att.SetValue(testnumber) Next
Bitte beachte, dass es nicht möglich ist, dass Attributkopien den gleichen Wert haben: Anschlusspunktname (1) = 100 Anschlusspunktname (2) = 100 Viele Grüße
Jörg
[Diese Nachricht wurde von K0NFUZIUS am 10. Nov. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JochenR Mitglied
Beiträge: 26 Registriert: 08.09.2015
|
erstellt am: 10. Nov. 2016 12:30 <-- editieren / zitieren --> Unities abgeben:
Hallo Jörg, danke für deine Rückmeldung. Ich habe nun folgenden Code: Set dp = CreateObject( "CT.Dispatcher" ) Set e3 = Application Set Job = e3.CreateJobObject Set sym = Job.CreateSymbolObject Set att = Job.CreateAttributeObject symcnt = Job.GetSelectedSymbolIDs( symids ) If (symcnt = 0) Then e3.PutWarning 1, "Es wurde nichts ausgewählt!" End If if (symcnt = 1) Then sym.SetId( symids(1) ) attcnt = sym.Getattributeids( attids, "Anschlusspunktname") For i = 1 to attcnt att.setid( attids(i) ) testnumber = 100*1 att.SetValue(testnumber) Next End If Aber leider geht das nicht, er schreibt keine Nummer an den Anschlusspunkt. Lauffähig ist der Code soweit, also keine Fehlermeldung. Kannst du entdecken wo der Fehler ist? gruß Jochen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JochenR Mitglied
Beiträge: 26 Registriert: 08.09.2015
|
erstellt am: 10. Nov. 2016 13:33 <-- editieren / zitieren --> Unities abgeben:
Ich habe mittlerweile herausgefunden woran es liegt und zwar ist Anschlusspunktname (x) kein Attribut sondern nur ein Text. Mit folgendem Code geht es. Set dp = CreateObject( "CT.Dispatcher" ) Set e3 = Application Set Job = e3.CreateJobObject Set sym = Job.CreateSymbolObject Set txt = Job.CreateTextObject symcnt = Job.GetSelectedSymbolIDs( symids ) If (symcnt = 0) Then e3.PutWarning 1, "Es wurde nichts ausgewählt!" End If if (symcnt = 1) Then sym.SetId( symids(1) ) txtcnt = sym.GetTextIds( txtids) For i = 1 to txtcnt txt.setid( txtids(i) ) txt.Settext("300") Next End If Gruß Jochen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |