Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  TM - Plant Simulation
  Benutzerdefinierte Attribute BUs

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:  Benutzerdefinierte Attribute BUs (890 mal gelesen)
SGl
Mitglied


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

Beiträge: 3
Registriert: 04.12.2020

erstellt am: 04. Dez. 2020 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

Hallo,

ich habe eine Frage bezüglich den benutzerdefinierten Attributen der BUs.
Zunächst habe ich eine Tabelle mit Zykluszeiten (t_cycle). (Spalte 1: integer; Spalte 2 string; Spalte 3 - Ende: integer)

Bei dem BU habe ich im "Reiter" benutzerdefiniert ein Attribut mit dem Namen cycle (Datentyp: table) angelegt. In der Tabelle entsprechen die Datentypen der Spalten den Datentypen der t_cycle.

Nun möchte ich diese Tabelle entsprechend dem Namen des BU mit der dazugehörigen Zeile aus der Tabelle t_cycle befüllfen. Dabei würde ich Zelle für Zelle vorgehen.

Ich habe die folgende Vorgehensweise auch schon dazu benutzt die Werte für Variabeln automatisch aus einer Tabelle zu schreiben.

Bei dem neuen Beispiel wird mir aber immer der Fehler "kein gültiger Pfad" angezeigt.

var y : integer
var workpiece_cycle : object

for y:= 1 to .Models.t_cycle.YDim

    workpiece_lot := str_to_obj(".Benutzerobjekte." + .Models.t_cycle[2,y] + ".cycle[1,1]")

    workpiece_lot := .Models. t_cycle[3,y]
   
next


Über Hilfe würde ich mich sehr freuen!

Vielen Dank im Voraus!

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

nadin1223
Mitglied
Ing.


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

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 04. Dez. 2020 19: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 Nur für SGl 10 Unities + Antwort hilfreich

Moin,

werde aus dienem Code nicht wirklich schlau..

deshalb mal einfach kommentiert

Code:

var y : integer
var workpiece_cycle : object //unten heißt deine Variable "workpiece_lot"

for y:= 1 to .Models.t_cycle.YDim //also Plant Sim auf englisch eingestellt, oder selbst in Bibliothek ".Models" angelegt

    workpiece_lot := str_to_obj(".Benutzerobjekte." + .Models.t_cycle[2,y] + ".cycle[1,1]")
  /*
also das objekt ist in der Tabelle von BE in Zelle [1,1] hinterlegt --> im Text oben schreibst du, dass "Spalte 1: integer;" ist
Existiert .Benutzerobjekte bei dir in der Klassenbibliothek-->ist eig. in englisch dann UserObjects
*/

    workpiece_lot := .Models. t_cycle[3,y]
/*
hier versuchst du der internen Variable ein integer zuzuweisen...ich vermute mal: es ist nur nicht vollständig eingetippt
*/
 
next


Also du hast eine Tabelle in der KlassenBibliothek. Wenn du aus dieser Tabelle auf das BE, welches in Modellen, während der Simulation erzeugt wurde, zugreifen willst, dann heißt das BE beispielsweise ".BEs.Fördergut:1".

Zitat:
Bei dem neuen Beispiel wird mir aber immer der Fehler "kein gültiger Pfad" angezeigt.

Zusätzlich wird die Zeile, wo der Fehler auftritt markiert. Der Fehler sagt aus, dass die von dir angegebene Pfad nicht richtig ist. D.h. das Objekt existert nicht unter dieser Adresse. 

vG
Nadin

------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

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

SGl
Mitglied


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

Beiträge: 3
Registriert: 04.12.2020

erstellt am: 04. Dez. 2020 20:53    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


Capture.PNG

 
Hallo,

da war in der Tat noch ein copy/paste Fehler bei der Variable drin.
Mein PlantSim ist auf englisch eingestellt. Das Benutzerobjekte hat es selbstständig aber mit dem deutschen Namen erstellt...

Habe mal ein Bild angefügt, vielleicht wird es dann verständlicher.
Bei den Bezügen hat sich bisschen was geändert.

Grundsätzlich ist das Ziel entsprechend dem Namen des BU aus der Tabelle (unter Methods)die entsprechende Zeile in das Attribut zu schreiben.
Dabei wäre ich Zelle für Zelle vorgegangen.

Bin für andere Lösungsansätze auch offen. 

Danke!

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

nadin1223
Mitglied
Ing.


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

Beiträge: 938
Registriert: 29.03.2016

erstellt am: 04. Dez. 2020 21: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 SGl 10 Unities + Antwort hilfreich

fast... die Attribute - also beispielsweise die Tabelle in dem Objekt - sind selbst keine Objekte.

Code:

var _tab : object := .Models.Methods.t_lot
for var i:= 1 to _tab.ydim
            var workpiece : object := str_to_obj(".Benutzerobjekte." + _tab[2,i]  ) //das BE
            var workpiece_lot : table := workpiece.lot; //die Tabelle in BE
              workpiece.lot[1,1] := _tab[3,i]
              workpiece_lot[1,1] := _tab[3,i]
next


------------------
Die einfachste Art an korrekte Informationen zu gelangen ist, etwas Falsches in ein Forum zu posten und auf die Korrektur zu warten. (Matthew Austern)

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

SGl
Mitglied


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

Beiträge: 3
Registriert: 04.12.2020

erstellt am: 04. Dez. 2020 23: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

Vielen Dank! Das hat mir sehr geholfen!

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