Hallo,
ich bin sowohl ein Neuling in diesem Forum als auch unter den Programmierern.
Ich habe eine grundlegende Frage, es handelt sich um eine VB.Net Umgebung die in ABB Robotstudio 5.11 integriert ist.
Welchen Unterschied machen mir die folgenden 2 Formulierungen, wenn ich alles richtig verstanden habe geht es darum, dass ich einer Instanz die ich anlege ein Objekt zuweise:
Dim stn as Station=Project.ActiveProject
Dim selobject as Projectobject=stn.Selection.SingleSelectedObject
und
Dim selobject as projectobject= Project.ActiveProject.Selection. SingleSelectedObject
Von der Funktionalität macht es scheinbar keinen Unterschied (Debug-Modus in Robotstudio nicht nutzbar!)und die grundsätzliche Funktionalität ist mir klar. Bei beiden habe ich im Endeffekt eine Variable, der im aktiven Projekt ein Object zugewiesen wird, wenn genau eines vor Starten des Makros mit Mausklick ausgewählt wurde. Welchen Unterschied macht es, wenn ich mir zunächst die Variable stn bilde (das nennt man docj dann Instanz??) oder nicht?
Ich habe noch ein weiteres analoges Beispiel, wobei einer der beiden hier zu einer Fehlermeldung führt:
Dim stn as Station=Project.ActiveProject
Dim wobj as RSWorkobject = stn.ActiveTask.ActiveWorkobject
oder
Dim wobj as RSWorkobject = Project.ActiveProject.ActiveTask.ActiveWorkobject
Der 2. Fall brint mir hier folgende Fehlermeldung: "ActiveTask" is not a member of "ABB.Robotocs.RobotStudio.Project"
Schön und gut...nur was macht das dann für einen Unterschied, ob ich mir erst die Instanz stn schaffe? Warum ist ActiveTask dann auf einmal Member???
Ich danke euch schon mal für eure Antworten. Und wenn ich irgendwas falsch benannt habe (Instanzen z.b.) korrigiert mich bitte.
Zuerst dachte ich, dass jeweils beide Schreibweisen das gleiche bedeuten (lediglich Verkürzung, ich muss nicht immer "Project.ActiveProject" sondern nur noch "stn" schreiben), aber beim gerade vorangegangenen Beispiel ist dies ja nicht der Fall! Also
Die verwendeten Namespaces und Referencen sind ABB eigene Referenzen. Sie sind in der Hilfe wie folgt beschrieben:
Station (Class): The Station object is a set of objects with a spatial and/or logical relationsship. Creates and initiates a new station object.
Project (Class): Base class for all project types.
ActiveProject (Public Ahared Property): Gets the project that is currently active
Projectobject (Class): Abstract base class for all objects that can be part of a Project. It can not be instanciated.
Selection (Public Read only Prooerty): Gets an object giving acces to the selection system for the project.
Singleselected (Public Read only property): If a single object is selected, that object is returned, otherwise null.
RSWorkobject: A Workobject is a coordinate system...Initializes a new instance of the RSWorkobject class.
ActiveTask: !keine Definition gefunden! Aber bezieht sich wohl darauf, dass das ActiveWorkobject (siehe nächster Befehl) aus dem aktiven Task genommen wird.
ActiveWorkobject: Gets or stes the active RSWorkobject of the task
ich bin sowohl ein Neuling in diesem Forum als auch unter den Programmierern.
Ich habe eine grundlegende Frage, es handelt sich um eine VB.Net Umgebung die in ABB Robotstudio 5.11 integriert ist.
Welchen Unterschied machen mir die folgenden 2 Formulierungen, wenn ich alles richtig verstanden habe geht es darum, dass ich einer Instanz die ich anlege ein Objekt zuweise:
Dim stn as Station=Project.ActiveProject
Dim selobject as Projectobject=stn.Selection.SingleSelectedObject
und
Dim selobject as projectobject= Project.ActiveProject.Selection. SingleSelectedObject
Von der Funktionalität macht es scheinbar keinen Unterschied (Debug-Modus in Robotstudio nicht nutzbar!)und die grundsätzliche Funktionalität ist mir klar. Bei beiden habe ich im Endeffekt eine Variable, der im aktiven Projekt ein Object zugewiesen wird, wenn genau eines vor Starten des Makros mit Mausklick ausgewählt wurde. Welchen Unterschied macht es, wenn ich mir zunächst die Variable stn bilde (das nennt man docj dann Instanz??) oder nicht?
Ich habe noch ein weiteres analoges Beispiel, wobei einer der beiden hier zu einer Fehlermeldung führt:
Dim stn as Station=Project.ActiveProject
Dim wobj as RSWorkobject = stn.ActiveTask.ActiveWorkobject
oder
Dim wobj as RSWorkobject = Project.ActiveProject.ActiveTask.ActiveWorkobject
Der 2. Fall brint mir hier folgende Fehlermeldung: "ActiveTask" is not a member of "ABB.Robotocs.RobotStudio.Project"
Schön und gut...nur was macht das dann für einen Unterschied, ob ich mir erst die Instanz stn schaffe? Warum ist ActiveTask dann auf einmal Member???
Ich danke euch schon mal für eure Antworten. Und wenn ich irgendwas falsch benannt habe (Instanzen z.b.) korrigiert mich bitte.
Zuerst dachte ich, dass jeweils beide Schreibweisen das gleiche bedeuten (lediglich Verkürzung, ich muss nicht immer "Project.ActiveProject" sondern nur noch "stn" schreiben), aber beim gerade vorangegangenen Beispiel ist dies ja nicht der Fall! Also
Die verwendeten Namespaces und Referencen sind ABB eigene Referenzen. Sie sind in der Hilfe wie folgt beschrieben:
Station (Class): The Station object is a set of objects with a spatial and/or logical relationsship. Creates and initiates a new station object.
Project (Class): Base class for all project types.
ActiveProject (Public Ahared Property): Gets the project that is currently active
Projectobject (Class): Abstract base class for all objects that can be part of a Project. It can not be instanciated.
Selection (Public Read only Prooerty): Gets an object giving acces to the selection system for the project.
Singleselected (Public Read only property): If a single object is selected, that object is returned, otherwise null.
RSWorkobject: A Workobject is a coordinate system...Initializes a new instance of the RSWorkobject class.
ActiveTask: !keine Definition gefunden! Aber bezieht sich wohl darauf, dass das ActiveWorkobject (siehe nächster Befehl) aus dem aktiven Task genommen wird.
ActiveWorkobject: Gets or stes the active RSWorkobject of the task
Comment