| | |
 | Zuken tritt dem IBM Research AI Hardware Center bei, um AI-Hardware-Lösungen der nächsten Generation zu entwickeln, eine Pressemitteilung
|
|
Autor
|
Thema: BMK von angeschlossenem BKK übernehmen (993 mal gelesen)
|
ikaika Mitglied Elektrotechniker HF
 Beiträge: 9 Registriert: 15.07.2015
|
erstellt am: 16. Dez. 2015 14:27 <-- editieren / zitieren --> Unities abgeben:         
Hallo zusammen eine Frage zu Script. Ist Situation: zwei Bauteile sind verbunden. BM1 und BM2, jeweils Pin1. Beide Bauteile haben ein Attribut "Name" Im BM1 steht im Attribut Name "S111" Im BM2 steht im Attribut Name "" Ziel: Im Attribut Name von BM2 soll auch "S111" stehen. Ich stelle mir das so vor: BM2 selektieren und Befehl(Script) starten. Kann mir jemand helfen, wie das Script ca. auszusehen hat. Vielen Dank
------------------ ikaika Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
 
 Beiträge: 287 Registriert: 06.02.2006
|
erstellt am: 18. Dez. 2015 16:50 <-- editieren / zitieren --> Unities abgeben:          Nur für ikaika
Hallo ikaika, das sollte kein Problem darstellen. Aber ich verstehe die Anforderung nicht ganz. Ein Betriebsmittel z.B. BM1 ist doch häufig mit mehr als einem anderen Betriebsmittel verbunden. Z.B. eine Sicherung. Von welcher Seite möchtest Du denn dann Dein Attribut übertragen!? Was möchtest Du den mit Deinem Attribut bezwecken? Gruß Jörg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ikaika Mitglied Elektrotechniker HF
 Beiträge: 9 Registriert: 15.07.2015
|
erstellt am: 21. Dez. 2015 16:08 <-- editieren / zitieren --> Unities abgeben:         
Hallo Jörg Die Idee ist, dass ich ein Bauteil selektiere und das Script starte. Das Script soll schauen was angeschlossen ist, also über die Verbindung und das Attribut auslesen. In dem Attribut ist ein Text den ich übertragen möchte. Z.B "Sensor Transporter 1" Somit kann ich das Sensorbauteil selektiren und mit dem Script dann den Namen holen wo es angeschlossen ist. Ein Beispiel: Wenn du ein SPS Device (Simens S7) hast, mit div. Symbolen. An denen du dann die Sensoren anschliesst. So typisch SPS mit Sensoren als Input und Ventiele als Output. Die Sensoren/Output sollen dann quasi über das Scribt (Attribut) die Benennung bekommen.
------------------ ikaika Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
K0NFUZIUS Moderator
 
 Beiträge: 287 Registriert: 06.02.2006
|
erstellt am: 23. Dez. 2015 16:48 <-- editieren / zitieren --> Unities abgeben:          Nur für ikaika
Hi im alten Jahr quick aber dirty gemacht .. das ist sicherlich nur die schnell und nicht die schöne Lösung: Das Beispiel vererbt das Attribut auf PIN Ebene: Code: Set e3 = CreateObject( "CT.Application" ) Set prj = e3.CreateJobObject() Set pin = prj.CreatePinObject() Set sym = prj.CreateSymbolObject() Set pin1 = prj.CreatePinObject() Set net = prj.CreatenetObject() Set ns = prj.CreateNetSegmentObject() Set att = prj.CreateAttributeObject()'e3.ClearOutputWindow symcnt = prj.GetSelectedSymbolIds( symids ) Dim attnam attnam = "Material" For i = 1 to symcnt sym.Setid(symids(i) ) Dim connections Set connections = CreateObject("Scripting.Dictionary") pincnt = sym.getPinIds(pins) if( pinCnt > 1 ) then e3.putInfo 0, "Symbol hat mehr als zwei Anschlußpunkte" else pin.setid pins(1) netsegcnt = pin.GetNetsegmentids( netsegids ) for k = 1 to netsegcnt ns.setid netsegids(k) net.setid ns.getid() pincnt1 = net.getPinIds (pinids1) For n = 1 to pincnt1 pin1.SetId pinids1(n) if pin1.GetId <> pins(1) Then attvalCnt1 = pin1.GetAttributeIds( attvals1, attnam ) if( attvalCnt1 = 1 ) Then att.Setid attvals1(1) pin.AddAttributeValue attnam, att.GetValue() end if end if Next next end if Next Set pin = Nothing Set pin1 = Nothing Set net = Nothing Set ns = Nothing Set Sym = Nothing Set dev = Nothing Set prj = Nothing Set e3 = Nothing
Schöne Weihnachten und einen guten Rutsch. Gruß Jörg [Diese Nachricht wurde von K0NFUZIUS am 23. Dez. 2015 editiert.] [Diese Nachricht wurde von K0NFUZIUS am 25. Jan. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |