|
Autor
|
Thema: Auf Ojekte des AttributeExplorers zugreifen (1228 / mal gelesen)
|
MarkusK Mitglied
 
 Beiträge: 131 Registriert: 09.08.2002 HP ZBook 15 G2 Intel i7-4810MQ 8-Core 32 GB Ram NVIDIA Quadro K2100M Win 7 Catia V5R24 SP4
|
erstellt am: 13. Jan. 2016 11:16 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich versuch mich gerad etwas in die Programmierung von Plant Simulation einzuarbeiten, und mache auch 1. Fortschritte. Ich wollte mir nun ein Makro machen, welches mir die Ojekte im AttributeExplorer ausliest und diese dann auswählt. (zum Überprüfen welche Ojekte enthalten sind) Code:
is myObj : Object; t:Table; do t:=Attributexplorer.objekttabelle; for local i := 1 to t.yDim loop print t[1,i]; next; end;
Mein Problem ist, dass ich im Code nicht auf die Ojekte zugreifen kann, ich bekomme immer ein VOID zurück. Wenn ich ein Haltepunkt im Code setze bekomme ich in dem "Debugg-Fenser" unten die Variable t angezeigt, und ich kann darüber auch die Tabelle öffnen und anschauen. In der Tabelle sind dann auch alle Objekte schön zu sehen. Eine Vermutung habe ich noch, denn wenn ich die Tabelle anschaue sind alle Felder rot hinterlegt, was bei anderen Tabellen nicht der Fall ist. Ist beim AttributeExplorer die ObjekteTabelle irgendwie gesperrt? ------------------ Gruss Markus
[Diese Nachricht wurde von MarkusK am 27. Jan. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarkusK Mitglied
 
 Beiträge: 131 Registriert: 09.08.2002 HP ZBook 15 G2 Intel i7-4810MQ 8-Core 32 GB Ram NVIDIA Quadro K2100M Win 7 Catia V5R24 SP4
|
erstellt am: 18. Jan. 2016 08:54 <-- editieren / zitieren --> Unities abgeben:         
Hallo, ich bin jetzt so weit, dass ich mir die Objekte über die Explorer-Tabelle auswählen kann (Das ist die Tabelle die beim Attribute-Explorer dann auch Angezeigt wird). Allerdings gibt es Unterschiede zwischen der Objekt-Tabelle und der Explorer-Tabelle. In der Objekt-Tabelle können ja auch nicht mehr vorhandene Elemente drin sein. Ich würde nun halt gern die beidne Tabellen vergleichen, und mir eine Meldung ausgeben lassen wenn in der Objekt-Tabelle veraltete Elemente vorhandne sind. Ich habe es aber noch nicht hinbekommen auf die Elemente der Objekt-Tabelle zuzugreifen. Vielleich weiß ja jemand Rat ------------------ Gruss Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
MarkusK Mitglied
 
 Beiträge: 131 Registriert: 09.08.2002 HP ZBook 15 G2 Intel i7-4810MQ 8-Core 32 GB Ram NVIDIA Quadro K2100M Win 7 Catia V5R24 SP4
|
erstellt am: 22. Jan. 2016 11:36 <-- editieren / zitieren --> Unities abgeben:         
Hallo, also ich bin etwas schlauer. Ein Kollege hat mich unterstütz und ich habe jetzt folgende Erkenntnisse. 1. Wenn im Attribute-Explorer in der ObjekteTabelle die Objekte mit "kurzen" Pfad, also nur mit dem Namen, enthalten sind. Kann ich die Elemente nicht direkt ansprechen. Also AttributeExplorer.ObjektTabelle[1,1] gibt dann immer VOID zurück.
Wenn der absolute Pfad enthalten ist also z.B. "*.Modelle.MeinNeztwerk.Quelle" kann ich dirket zugreifen. 2. Wenn ich zuvor eine Tabelle erzeuge und auch mit Create erstelle, dieser dann die ObjektTabell zuweise geht es. Dies geht also Code:
is ot:Table; s:string; do ot.create; ot:=Attributexplorer.objekttabelle; for local i := 1 to ot.yDim loop if ot[1,i] /= Void then ot[1,i].Selektiert:=True; end; next; end;
Wenn jedoch in der ObjektTabelle "alte", nicht mehr vorhanden Objekte, enthalten sind bekomme ich natürlich wieder Void zurück. Auf den Namen des nicht mehr Vorhanden Elements, kann ich also auch nicht zugreifen. Daher werde ich weiterhin über die Explorer-Tabelle gehen und eine zusätzlich Meldung ausgeben ob in der Objekt-Tabelle mehr Elemente Enthalten sind wie in der Explorer Tabelle. ------------------ Gruss Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| | Konstrukteur (m/w/d) | Die börsennotierte Rheinmetall AG mit Sitz in Düsseldorf steht als integrierter Technologiekonzern für ein substanzstarkes, international erfolgreiches Unternehmen, das mit einem innovativen Produkt- und Leistungsspektrum auf unterschiedlichen Märkten aktiv ist. Rheinmetall ist ein führendes internationales Systemhaus der Verteidigungsindustrie und zugleich Treiber zukunftsweisender technologischer und industrieller Innovationen auf den zivilen Märkten.... | | Anzeige ansehen | Konstruktion, Visualisierung |
|
MarkusK Mitglied
 
 Beiträge: 131 Registriert: 09.08.2002 HP ZBook 15 G2 Intel i7-4810MQ 8-Core 32 GB Ram NVIDIA Quadro K2100M Win 7 Catia V5R24 SP4
|
erstellt am: 27. Jan. 2016 10:59 <-- editieren / zitieren --> Unities abgeben:         
Hallo, habe es jetzt hinbekommen im Attribute-Explorer die nicht mehr vorhandenen Ojekte auszulesen. Zudem kommt dann noch eine Abfrage ob die Elemente gleich gelöscht werden sollen. hier der Code der die Elemente vom Attribute-Explorer auswählt, und gleich berreinigen kann.
Code:
is ot:Table; indexe:list[integer]; s:String; so:string; do indexe.create; ot.create; ot:=Attributexplorer.Objekttabelle; for local i := 1 to ot.yDim loop if ot[1,i] /= Void then ot[1,i].Selektiert:=True; else indexe.einfügen(1,i); so:= so + to_str( indexe.dim) + ". " + ot.alsstring(1,i) + chr(13); end; next; if indexe.dim>0 then s:="In der Ojekttabelle sind " + to_str(Attributexplorer.ObjektTabelle.ydim - Attributexplorer.ExplorerTabelle.ydim) + " Objekt(e) nicht mehr vorhandene:"; s:=s + chr(13) + chr(13) + so; s:=s + chr(13) + chr(13) + "Sollen die alten Objekte gelöscht werden?"; inspect messageBox(s,48,4) when 16 then -- Ja while indexe.dim>0 loop ot.entferneZeile(indexe[1]); end; attributexplorer.objekttabelle:=ot; when 32 then -- Nein end; end; end;
------------------ Gruss Markus Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |