Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  E3.series
  Script zum automatischen Anpassen der Linienfarbe

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:  Script zum automatischen Anpassen der Linienfarbe (535 mal gelesen)
Thomas6789
Mitglied
CAE-Admin


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

Beiträge: 31
Registriert: 24.10.2018

Zuken E3

erstellt am: 27. Jan. 2021 09:33    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 zusammen,

wenn in E3 eine Ader mit einer definierten Farbe auf eine Verbindung gelegt wird, wird die Linie trotzdem in der Standardfarbe Blau dargestellt. Da es dafür bisher keine integrierte Funktion in E3 gibt, habe ich ein kleines Script geschrieben, was auch bei fast allen Verbindungen funktionert. Die einzige Stelle an der es Probleme gibt, sind abgeknickte Verbindungen. Im Anhang habe ich dazu ein Screenshot von einem Beispielprojekt. Hat jemand eine Idee, was der Grund für das Verhalten sein könnte?

Hier der Code des Scripts:

Code:

Dim WireColourDesc, LineColour, newcol, newstyle

prj.getallconnectionIds conIds 
for i=1 to UBound (conIds)
con.setId conIds (i)
con.GetPinIds pinIds
for j=1 to UBound (pinIds)
pin.setId pinIds(j)

pin.GetCoreIds corids
for m=1 to Ubound (corids)
cor.setId corids (m)
WireColourDesc = cor.GetColourDescription
App.Putinfo 0, WireColourDesc
next

pin.getNetSegmentIds NsegIds
for l=1 to Ubound (NSegIds)
nseg.setId NsegIds (l)
'LineColour = nseg.GetLineColour
'App.Putinfo 0, LineColour
'App.Putinfo 0, "Linestyle" & nseg.GetLineStyle

if wireColourDesc = "Brown" then
newcol = 29
nseg.SetLineColour newcol
end if

if wireColourDesc = "Red" then
newcol = 13
nseg.SetLineColour newcol
end if

if wireColourDesc = "Grey" then
newcol = 12
nseg.SetLineColour newcol
end if

if wireColourDesc = "Blue" then
newcol = 16
nseg.SetLineColour newcol
end if

if wireColourDesc = "Orange" then
newcol = 41
nseg.SetLineColour newcol
end if

if wireColourDesc = "Black" then
newcol = 0
nseg.SetLineColour newcol
end if

if InStr(1, wireColourDesc, "Black", 1) = 1 then
newcol = 0
nseg.SetLineColour newcol
end if

if wireColourDesc = "Violet" then
newcol = 5
nseg.SetLineColour newcol
end if

if wireColourDesc = "White" then
newcol = 10
nseg.SetLineColour newcol
end if

if wireColourDesc = "Yellow" then
newcol = 15
nseg.SetLineColour newcol
end if

if wireColourDesc = "Wire colour 165" then
newcol = 7
nseg.SetLineColour newcol
end if

if wireColourDesc = "Green-Yellow" then
newstyle = 5
nseg.SetLineStyle  newstyle
end if

if wireColourDesc = "Green" then
newstyle = 5
nseg.SetLineStyle  newstyle
end if

next
next
next

App.Putinfo 0, "Script fertig"



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: 27. Jan. 2021 14:52    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 Thomas6789 10 Unities + Antwort hilfreich

Hallo Thomas,
nur mal so wäre es nicht clever alle Adern/Drähte vom Projekt zu ermitteln. Über die Connectionids zu laufen ist etwas overpowered  
Versuch mal das hier:
Code:

Set app = CreateObject("CT.Application")

Set prj = app.CreateJobObject()
Set dev = prj.CreateDeviceObject()
Set cor = prj.CreatePinObject()
Set nseg = prj.CreateNetSegmentObject()

Dim WireColourDesc, LineColour, newcol, newstyle
prj.GetCableIds cabIds
for i=1 to UBound (cabIds)
dev.setId cabIds (i)
dev.GetAllCoreIds corids
for m=1 to Ubound (corids)
cor.setId corids (m)
WireColourDesc = cor.GetColourDescription
App.Putinfo 0, WireColourDesc

cor.getNetSegmentIds NsegIds
for l=1 to Ubound (NSegIds)
nseg.setId NsegIds (l)
'LineColour = nseg.GetLineColour
'App.Putinfo 0, LineColour
'App.Putinfo 0, "Linestyle" & nseg.GetLineStyle

if wireColourDesc = "Brown" then
newcol = 29
nseg.SetLineColour newcol
end if

if wireColourDesc = "Red" then
newcol = 13
nseg.SetLineColour newcol
end if

if wireColourDesc = "Grey" then
newcol = 12
nseg.SetLineColour newcol
end if

if wireColourDesc = "Blue" then
newcol = 16
nseg.SetLineColour newcol
end if

if wireColourDesc = "Orange" then
newcol = 41
nseg.SetLineColour newcol
end if

if wireColourDesc = "Black" then
newcol = 0
nseg.SetLineColour newcol
end if

if InStr(1, wireColourDesc, "Black", 1) = 1 then
newcol = 0
nseg.SetLineColour newcol
end if

if wireColourDesc = "Violet" then
newcol = 5
nseg.SetLineColour newcol
end if

if wireColourDesc = "White" then
newcol = 10
nseg.SetLineColour newcol
end if

if wireColourDesc = "Yellow" then
newcol = 15
nseg.SetLineColour newcol
end if

if wireColourDesc = "Wire colour 165" then
newcol = 7
nseg.SetLineColour newcol
end if

if wireColourDesc = "Green-Yellow" then
newstyle = 5
nseg.SetLineStyle  newstyle
end if

if wireColourDesc = "Green" then
newstyle = 5
nseg.SetLineStyle  newstyle
end if

next
next

next

App.Putinfo 0, "Script fertig"



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

Thomas6789
Mitglied
CAE-Admin


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

Beiträge: 31
Registriert: 24.10.2018

Zuken E3

erstellt am: 28. Jan. 2021 12: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

Hallo K0NFUZIUS,

danke für den Hinweis, jetzt funktioniert es :-)

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

Thomas6789
Mitglied
CAE-Admin


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

Beiträge: 31
Registriert: 24.10.2018

Zuken E3

erstellt am: 02. Feb. 2021 15:32    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

Noch einen Hinweis für die, die das Script verwenden möchten. Anstatt GetCoreIds besser GetAllCoreIds verwenden, da ansonsten Verbindungen mit Verdrillten Adern nicht erfasst werden.

LG

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