Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  E3.series
  Skirpt zum Attribute ändern/Verbindung erstellen

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
Autor Thema:  Skirpt zum Attribute ändern/Verbindung erstellen (953 mal gelesen)
Daudi2010
Mitglied



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

Beiträge: 52
Registriert: 16.05.2014

E3.Series 2014

erstellt am: 25. Aug. 2014 10:34    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


Verbindung.JPG

 
Hallo zusammen,

bei mir haben sich mal wieder 2 neue Probleme ergeben!

Ich will den Eintrag bei Technische Daten 1 der Symboleigentschaften ändern.
Ich habe es so probiert:

sym.SetAttributeValue "Techdat1", "blabla"

leider ändert sich da nicht der Eintrag von den Technische Daten 1 sondern es kommt ein neues Attribut dazu!

Mein 2 Problem ist ich würde gerne eine Verbindung erstellen. Im Bild sieht man die Abzweigung und nun würde ich gerne so eine erstellen.

Code:

If( pin.GetName = xmlpinnam ) Then
pin.GetSchemaLocation x16, y16, grid
xarr( 1 ) = 168.052
yarr( 1 ) = 331.392
xarr( 2 ) = 233.392
yarr( 2 ) = 392.055

con.Create prj.GetActiveSheetId, 2, xarr, yarr
Exit For
End If

So sieht im Moment mein code aus leider bekomme ich da keinen so schwarzen  Verbindungspunkt und die Linie geht einfach direkt zur anderen Stelle. Die Y und X Werte habe ich im Plan erstmal abgelesen!

Vielleicht hat mir ja jemand eine Idee wie man das besser machen kann und wie ich das so hinbekomme dass es wie im Bild aussieht!

Vielen Dank

Gruß
David

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

Daudi2010
Mitglied



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

Beiträge: 52
Registriert: 16.05.2014

E3.Series 2014

erstellt am: 25. Aug. 2014 14:21    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

So das mit den  Attributen ändern habe ich nun geschafft!

Man muss leider erst über Device gehen und es dort ändern! Direkt über Symbol ändern ging einfach nicht!

Code:

descnt = pin3.GetDestinationIds( desids )
        dev.setid desids(1)
        MsgBox dev.getname
                        dev.SetAttributeValue "Techdat1", "Warnlampe"

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

K0NFUZIUS
Moderator



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

Beiträge: 258
Registriert: 06.02.2006

erstellt am: 26. Aug. 2014 15:59    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 Daudi2010 10 Unities + Antwort hilfreich

Hallöle David, 

wie ich Dir ja bereits mal geschrieben habe ist das kein triviales Problem und kommt einem Autorouter gleich.

Grundsätzlich musst Du jeden Punkt einzeln in Deine Liste addieren.
Also in Deinem Beispiel müssen in das Array zuerst der obere gewünschte Knoten an der Horizontalen Linie und dann Schemalocation des oberen Pins.
Für die untere Verbindung benötigst Du die Schemalocation des unteren Pins, den Umlenkpunkt am Eck und Ziel Punkt links.

Vielleicht eine Idee wie Du die Punkte findest.
Wenn die Anschlusspunkt des platzierten Relay/Schütz bereits Signale haben, dann könntest Du versuchen die obere Linie darüber zu finden.
1. Relay Symbol wird vom Skript eingefügt
2. Die Signale an den Anschlusspunkten werden gesetzt
3. Im Sigalinterface suchst Du dir das Signal z.B. vom oberen Pin (sig.Search(name))
4. Dann holst Du dir alle Netzsegment auf denen das Signal aufliegt sig.GetNetsegmentIds()
5. Alle Linien holen (von jedem Netzsegment) ns.getConnectLineIds()
6. Alle Koordinaten holen, welche die Linie beschrieben conline.GetCoordinates() (ich denke da bekommst Du beide Punkte zurück )
7. Jetzt könntest Du versuchen von Deinem Pin einen Richtungsvektor zu basteln (z.B. nach oben ) und dann schauen, welche Linie den Vektorschneidet ...
8. An dem Schnittpunkt kannst Du dann starten und dann an Deinen Pin zu verbinden.

Die untere Verbindung wird natürlich trickreicher. Da habe ich auch gerade kein Einfall.

Aber wie Du siehst ist das nicht ohne ... Aber es hat ja niemand gesagt das es einfach wird 

LG Jörg

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

Daudi2010
Mitglied



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

Beiträge: 52
Registriert: 16.05.2014

E3.Series 2014

erstellt am: 28. Aug. 2014 09:31    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

Ok vielen Dank dann werde ich das mal so probieren!

Dadurch dass  bei mir gewisse Linien immer an der gleichen Position bleiben würde bei mir ja eventuell reichen, dass ich nur einmal ihre Postion bestimme und dann immer wieder benutzen kann!

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

Daudi2010
Mitglied



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

Beiträge: 52
Registriert: 16.05.2014

E3.Series 2014

erstellt am: 12. Sep. 2014 10:23    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,

so leider bin ich da noch nicht wirklich weiter gekommen.

Nun habe ich dazu nochmal eine Frage:

Ich kann ja die Position von den Bauteilen anzeigen lassen könnte dann zu der Position etwas dazu addieren und dann dort die Linie setzen? !
Da ich mehere parallel habe müsste ich halt immer einen  anderen Wert dazu rechnen und wenn es mehrere Verbindungen auf einer Linie sind mehere verscheiden Werte nehmen?

Ist das eine mögliche Lösung oder eher nicht?

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