Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  E3.series
  Bauteil nach X-Wert suchen

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:  Bauteil nach X-Wert suchen (1127 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: 11. Nov. 2014 11:45    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,

ich habe ein Bauteil, von dem ich die Position habe. Nun ist dies nicht direkt an den Pin angeschlossen und so kann ich den PIn nicht über getconnectedPinId finden.

Da ich aber den X-wert habe und der Pin auch den gleichen X-wert hat würde ich gerne den Pin so suchen.

Ist dies möglich und wenn ja kann mir jemand erklären wie man da am besten vorgeht?


Vielen Dank

David

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: 11. Nov. 2014 13:27    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

Hallo David,

ich bin jetzt nicht sicher ob ich Dich richtig verstanden habe.
meine Idee wäre:

Code:

symcnt = sht.GetSymbolIds(symids)
For i  = 1 to symcnt
    sym.Setid symids(i)
    pinCnt = sym.GetPinIds( pinIds )
    For j = 1 to pinCnt
        pin.SetNodeId pinIds (j)
        pin.GetSchemaLocation x,y,grid
        ' jetzt hast Du von allen Anschlusspunkten x,y und musst eine Zuordnung finden
    Next
Next

[Diese Nachricht wurde von K0NFUZIUS am 11. Nov. 2014 editiert.]

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: 11. Nov. 2014 13:47    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

Also ich versuche es nochmal zu erklären:

Mit:

Sym.GetSchemaLocation strSymX, strSymY, strSymGrid

hab ich nun von einem Symbol die Position. Das Symbol hängt zwar an einem Pin aber das nicht elektrisch. Also das heißt die Verbindung ist nicht wirklich da.

Nun würde ich aber trotzdem gerne auf den Pin kommen und dieser hat ja den gleichen X-Wert aber einen anderen Y-Wert.

Ich wollte den Pin nun mit Hilfe des X-Wertes von dem Symbol suchen.

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: 11. Nov. 2014 14:20    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

Da die SchemaLocation des Symbols nicht gleich der SchemaLocation der Anschlusspunkte entsprechen muss würde ich es wie von mir vorgeschlagen machen.

Wenn der Symbolursprung (sym.SchemaLocation) = pin.SchemaLocation ist dann kannst Du es doch so machen wie ich es gesagt habe.

Du holst Dir von Deinem Symbol x,y

Dann suchst Du mit meinem Code auf dem Blatt das Symbol welches den gleichen x Wert hat.

BTW. Du sagst der Pin ist nicht elektrisch... Du versuchst aber nicht Wasser oder Öl mit Strom zu verbinden  

Gruß Jörg

[Diese Nachricht wurde von K0NFUZIUS am 11. Nov. 2014 editiert.]

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: 11. Nov. 2014 15: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

Ein Versuch wäre es vielleicht wert     

Leider kann ich kein Bild hochladen  

ich will den Namen vom Bauteil  -I3 mit den X- und Y-Werten in einem Array speichern.
Nun muss ich den dazugehörigen Eingang finden hier ED-Flex3. Da -I3 nicht mit Pin 20 verbunden ist kann ich ja nicht über connection gehen.

Aber die X-Werte sind ja gleich.

Wenn man mein Skript startet öffnet sich ein Tree auf dem kann man den Eingnag auswählen und dann den richtigen Schalter und die dazugehörigen Funktionen.

Von dem tree bekomme ich ja dann den ausgwählten Eingang zurück, den muss ich nun mit dem richtigen BAuteil verbinden um dort ein neues Bauteil einsetzen zu können.

Meine Idee war nun das über den X-Wert zu machen.

Meine neue Idee war nun.

2 Arrays.
Eines hat den Namen des Bauteils plus den X- und Y-Wert
Zweite hat den Namen des Eingangs plus den X-Wert und Y-Wert des Eingangs.

Nun würde ich die Arrays vergleichen und über den X-Wert schauen welches BAuteil zu welchem Eingang gehört und dann den Namen vom Bauteil und Eingang plus den X-wert und Y-Wert vom Bauteil in einem Array speichern so, dass ich später das Bauteil ersetzen kann.

Ist dies denn so zu realisieren?

Ich hoffe ich habe es verständlich erklärt! 


Mein Problem ist glaub ich denke manchmal zu kompliziert ! 

[Diese Nachricht wurde von Daudi2010 am 11. Nov. 2014 editiert.]

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: 11. Nov. 2014 16:09    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

Darf ich noch kurz nachfragen ob Du mit .NET oder VB.Script arbeitest? Ich hab's vergessen 

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: 11. Nov. 2014 17:14    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

Kein Problem

Mit vbscript

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: 12. Nov. 2014 12:48    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

Zu Vorschlag 2
Du könntest Dir eine Klasse erzeugen in der Du Dir die Informationen hältst und die in eine Liste packen.
Ist halt in vbscript immer ein umständlich :-(
hab ich auch noch nie gemacht ... ich hab's mal versucht .. hoffe Du verstehst was ich mit dem Beispiel sagen will.

Code:

class Position

  public m_name
  public m_x
  public m_y

  Public Default Function Init( x, y, name )
    m_x = x
m_y = y
m_name = name
    Set Init = Me
  End Function
 
  public function GetX()
    GetX = m_x
  end function
  public function GetName()
    GetName = m_name
  end function

end class

dim myList
Set myList = CreateObject("System.Collections.ArrayList")

Set pos = New Position.init( 1,1, "Blubb")

myList.Add pos

msgbox myList(0).GetName()


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. Nov. 2014 13: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

Also so ganz versteh ich das jetzt glaub nicht.

Kannst du eventuell bitte in kurzen Sätzen neben die Zeilen schreiben was du genau machst?


Ich müsste ja quasi mit einer Funktion die Werte von den Bauteilen holen dann mit der anderen Funktion die Werte von den Eingängen und in einer weiteren Funktion die vergleichen und im array speichern?


Vielen Dank

[Diese Nachricht wurde von Daudi2010 am 12. Nov. 2014 editiert.]

[Diese Nachricht wurde von Daudi2010 am 12. Nov. 2014 editiert.]

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: 12. Nov. 2014 14:47    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

Jetzt weis ich nicht wie weit ich beim Stichwort "class" ausholen muss  

Ich versuch mal einen Mittelweg:
Alles was zw.

Code:
class Position

und
Code:
end class

steht. Ist eine Definition für Objekte.
Abstraktes Beispiel:
Du möchtest eine Box fertigen in der Du ein bisschen x ein bisschen y und einen Namen rein packen kannst. Zusätzlich soll Dir die Box alle Werte zurück geben können. Wie die Box aussieht und was sie tut definierst Du mit der Klasse (class)

Jetzt gehst Du über alle Deine Bauteile ( die in E³ Betriebsmittel heißen ;-) ) und zu jedem Betriebsmittel weist Du ja den Name und eben x,y über die SchemaLocation.

Jetzt sagst Du Deiner Maschine die Deine Boxen baut: "Mach mir mal eine Box und stopf gleich für x z.B. 100.2 mm für y 120.7mm und den Namen "MeinBMK" rein.
Das macht:

Code:
Set pos = New Position.init( 100.2, 120.7, "MeinBMK")

Das Objekt steckst Du in eine Liste:

Code:
myList.Add pos

Das machst Du jetzt mit allen Deinen Betriebsmitteln. Sprich Deine Maschine produziert nun pro Eintrag eine Box...

Jetzt hast Du eine Liste mit alle Objekten über die Du mit For Each drüber gehen kannst.
Jedes Objekt kannst Du dann z.b. nach dem X Wert oder dem Namen fragen:

Code:
myList(0).GetName()

Das Ganze machst Du jetzt mit Deinen Eingängen in eine zweite Liste

Danach gehst Du über beide Liste und sucht Die jeweils den gleichen X Wert.

!Das ist nicht die performanteste Lösung ... aber in vbscript fehlt mir die Erfahrung wie man das besser machen könnte!  

Gruß
Jörg

[Diese Nachricht wurde von K0NFUZIUS am 12. Nov. 2014 editiert.]

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. Nov. 2014 16:04    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

Habe ich das richtig verstanden dass du mit der

Public Default Function Init(x,y,name) über alle Bauteile gehst?

was hat das Set Init = Me zu bedeuten?

Also mein Code sieht so aus, ich verstehe nun jetzt aber nicht ganz genau was in die Klasse gehört und was nicht: 


et E3Dev = E3Prj.CreateDeviceObject
Set E3att = E3Prj.CreateAttributeObject
Set pin = E3prj.CreatePinObject
Set blkpin = E3prj.CreatePinObject

Set dicSymbols = CreateObject("Scripting.Dictionary")
Set liSymbols = CreateObject("System.Collections.ArrayList")


Class Bauteile

Public Bauteil_Name
Public Bauteil_X
Public Bauteil_Y

Public Default Function Init(name,x,y)


Bauteil_Name = name
Bauteil_X = x
Bauteil_Y = y


Set Init = Me

End Function

End Class


Dim intSymIds()

E3Sht.SetId(E3Prj.GetActiveSheetId)
E3Sht.GetSymbolIds(intSymIds)


For each intSymId in intSymIds
    E3Dev.SetId intSymId
    strDevName = E3Dev.getname
   
    If instr(strDevName,"-I") = 1 Then
E3Sym.SetID intSymId
    E3Sym.GetSchemaLocation strSymX, strSymY,""

ArrI = Array(strDevName,strSymX,strSymY) 
 
  For Each element In ArrI

MsgBox element

Next

  End If
 
Next


xmldevnam = "-X2"
E3dev.Search xmldevnam, "=6029_039_412", "+0200"


pincnt = E3dev.GetPinIds( pinids )


For p = 1 To pincnt

pin.SetId pinids( p )

blkpin.setid pin.getconnectedPinid
att = blkpin.GetAttributeValue ("PinFunktion")

If InStr (att, "ED") =1 Then


pin.GetSchemaLocation strSymX, "",""


    ArrED = Array(att,strSymX)

For Each element In ArrEd

MsgBox element

Next


End If
Next

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: 12. Nov. 2014 16:38    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

Code:

For each intSymId in intSymIds
    E3Dev.SetId intSymId
    strDevName = E3Dev.getname
 
    If instr(strDevName,"-I") = 1 Then
        E3Sym.SetID intSymId
        E3Sym.GetSchemaLocation strSymX, strSymY,""
        ArrI = Array(strDevName,strSymX,strSymY)
        For Each element In ArrI
          MsgBox element
      Next

Ersetzt Du durch:

Code:

Set ArrI = CreateObject("System.Collections.ArrayList")
For each intSymId in intSymIds
    E3Dev.SetId intSymId
    strDevName = E3Dev.getname
 
    If instr(strDevName,"-I") = 1 Then
        E3Sym.SetID intSymId
        E3Sym.GetSchemaLocation strSymX, strSymY,""
        Set element = New Position.init( strSymX, strSymY, strDevName)
        ArrI.Add element
...
Next


Jetzt Kannst Du über alle Elemente im Array drüber:

Code:

For Each element in ArrI
    Msgbox element.GetName()
Next


-----------------------------------------------------
Das gleiche machst Du mit dem unteren Teil Deiner Funktion
und speicherst die Objekte in ein anderes Array.. z.B.
Set ArrI2 = CreateObject("System.Collections.ArrayList")
-----------------------------------------------------

Zitat:
Habe ich das richtig verstanden dass du mit der
Public Default Function Init(x,y,name) über alle Bauteile gehst?


Nein
Init ist der Konstruktor und hilft dir beim neu erzeugen eines Objektes dies gleich zu initialisieren.

Zitat:
was hat das Set Init = Me zu bedeuten?

Hab ich kopiert weil ich zum ersten mal eine Klasse in vb Script gemacht hab :-D

Zitat:
Also mein Code sieht so aus, ich verstehe nun jetzt aber nicht ganz genau was in die Klasse gehört und was nicht: 

Die Klasse ist wie gesagt nur die Beschreibung was Du wie speicherst (der Bauplan für Dein Objekt)
Anderes abstraktes Beispiel:
Die Klasse entspricht dem Bauplan für ein Haus.
Mit dem Bauplan kannst Du beliebig viele Häuser bauen ( das sind die Objekte )

Die Variabeln in deinem Bauplan (hier m_x,m_x,m_name) sind "variabel". Sprich Du weisst z.B. nicht welche Hausnummer der Handwerker später anbringen muss.

Du erzeugst also ein Objekt Haus mit der "Variablen Hausnummer" mit dem "Wert 5" nach dem Bauplan.
Dann erzeugst Du ein Objekt Haus mit der "Variablen Hausnummer" mit dem "Wert 10" nach dem gleichen Bauplan.


Puhh jetzt habe ich aber weit ausgeholt 

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: 13. Nov. 2014 10:22    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

Wow ok vielen Dank ich werde das heute mal probieren.
Ich hatte bisher leider noch nicht wirklich was mit Klassen und Funktionen zu tun. Daher vielen Dank für deine ausführliche Erklärung.

Ich bekomme bei  MsgBox element.getName()

im Moment die Meldung "Das Objekt unterstützt diese Eigenschaft oder Methode nicht.: 'element.getname'

Was für ein Objekt muss ich da vorher ertellen?

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: 13. Nov. 2014 12:30    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

Die Funktion musst Du in Deiner Klasse definieren. (siehe mein erstes Beispiel)
Code:

Class Bauteile

    Public Bauteil_Name
    Public Bauteil_X
    Public Bauteil_Y

    Public Default Function Init(name,x,y)

        Bauteil_Name = name
        Bauteil_X = x
        Bauteil_Y = y
        Set Init = Me
    End Function

    public function GetName()
        GetName = Bauteil_Name
    End Function

End Class



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: 13. Nov. 2014 13:36    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

Oh man das habe ich vor lauter schnell machen wieder vergessen! 

Danke.

Aber was mir die ganze Zeit durch den Kopf schwirrt ist es auch möglich die zwei Arrays zu erstellen dann mit einer For-Schleife die zu vergleichen und die benötigten Werte in einem neuen Array zu speichern?

also ganz ohne Klasse und Funktionen?

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: 14. Nov. 2014 10:58    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

Das weiß ich leider nicht  
Ich weiß nicht wie man da drei Werte speichern könnte ohne die Daten in ein Objekt zu kapseln. In .NET oder C++ wäre das bestimmt anders möglich.

Ich bin jetzt leider nicht der vbScript Experte. Ich tu mich da mit den Arrays schon schwer  

Aber ob Du jetzt das Objekt in das Array packst oder direkt die Werte, sollte doch egal sein...
Du Erstellst jetzt ja auch zwei Arrays und kannst diese Vergleichen ... und dann das Objekt in ein drittes Array packen ... also ich seh da mal keinen Unterschied

Gruß Jörg


[Diese Nachricht wurde von K0NFUZIUS am 09. Jul. 2015 editiert.]

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: 18. Nov. 2014 13:01    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 ich habe nun mal etwas probiert nur habe ich grad das Problem mit den ganzen IF und For Anweisungen und daher füllt sich das Array nicht richtig.
Ich gleiche hier gleich die X-Werte ab und schreibe dann nur noch den Namen vom Eingang plus den X und Y wert von dem Betriebsmittel ins Array.
Entweder aber füllt sich jede Reihe mit dem gleichen oder es füllt sich immer nur die erste Reihe und wird dann überschrieben.


Code:


xmldevnam = "-X2"
dev.Search xmldevnam, "=6029_039_412", "+0200"
E3Sht.SetId(E3Prj.GetActiveSheetId)
E3Sht.GetSymbolIds(intSymIds)

pincnt = dev.GetPinIds( pinids )


For p = 1 To pincnt
        pin.SetId pinids( p )
blkpin.setid pin.getconnectedPinid
att = blkpin.GetAttributeValue ("PinFunktion")


For each intSymId in intSymIds
    E3Dev.SetId intSymId
    strDevName = E3Dev.getname


        If InStr (att, "ED") = 1 Then

pin.GetSchemaLocation strSymXED, strSymYED, strSymGridED

If instr(strDevName,"-I") = 1 Then
E3Sym.SetID intSymId
E3Sym.GetSchemaLocation strSymXI, strSymYI, strSymGridI


If  strSymXI = strSymXED Then 

Dim i,y,x
ReDim EingArr(30,5)

For i = 0 To UBound(EingArr) 


EingArr(i,0) = att
EingArr(i,1) = strSymXI
EingArr(i,2) = strSymYI
i = i+1
Next


End If
End If
End If


Next
Next

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: 19. Nov. 2014 13:39    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 habe nun eine Lösung indem ich einfach die X-Werte gleich vergleiche und dann nur noch das nötige im Array speicher.

Code:

If  strSymXI = strSymX Then  AusgArr(x,0) = att
AusgArr(x,1) = strSymXI
AusgArr(x,2) = strSymYI
x = x +1

End If

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