Servus,
ich brauche eure Hilfe.
Voraussetzung:
Softwareversion: NX7.5
Programmiersprache: C#
Ich habe ein kleines Programm geschrieben, welches auf einem Zeichnungsblatt kleine Texte platziert - teilweise als Note (Hinweis), teilweise als Label (Bezeichnung). Da diese Texte zu einer Zeichnungsansicht gehören und beim Verschieben der Ansicht mit verschoben werden sollen, habe ich die Texte mit der entsprechenden Zeichnungsansicht verknüpft. Funktioniert soweit prima.
Problemstellung:
Wenn das Programm gestartet wird, möchte ich zunächst gerne untersuchen, ob es in der vom Benutzer angewählten Zeichnungsansicht bereits Texte gibt und darauf entsprechend reagieren. Das klappt für die Notes hervorragend. Ich ermittle mit View.CycleObjects zunächst alle Objekte auf dem Zeichnungsblatt, filtere daraus die Notes heraus (AskTypeAndSubtype) ermittle die View der Note mit AskViewOfNote und vergleiche den zurückgegebenen View-Tag mit dem Tag der Ansicht, die der Benutzer beim Programmstart ausgewählt hat. Passt!
Beim Ermitteln der Label hänge ich aber nun - und das schon eine ganze Weile und komme einfach nicht dahinter. Bei der oben beschriebenen Routine View.CycleObjects => AskTypeAndSubtype sammle ich selbstverständlich auch alle Label. Leider gibt es aber für die Label kein "AskViewOfLabel" und bei AskViewLabel oder AskViewOfViewLabel ist das Label was ich habe wohl nicht gemeint (jedenfalls hagelt es zur Laufzeit fehler, dass der übergebene Wert invalide wäre).
Ich habe auch schon versucht, über den Label-Tag an das Label-Objekt zu kommen und über diesen dann eine entsprechende Assoziativität auszulesen - jedoch ebenfalls erfolglos. Zwar gibt es ein "ObjectView" beim Abfragen von label.GetAssociativity, jedoch ist diese View die SheetView und nicht die von mir gewünschte Member-View.
Falls ihr euch erbarmt und versuchen wollt mir zu helfen:
Im Anhang findet ihr ein Beispiel. Zwei Ansichten, acht Texte. 0001, 0002 und 0003 "gehören" zur linken Ansicht, 0004, 0005 und 0006 zur rechten. 0007 und 0008 sind mit keiner der Ansichten verknüpft. Wenn der Benutzer die linke Ansicht auswählt, möchte ich nur 0001, 0002 und 0003 ermitteln - wobei (wie schon beschrieben) 0001 und 0002 kein Problem darstellt. 0003 aber schon.
Ich würde mich fürchterlich über Denkanstöße freuen.
Vielen, vielen Dank im Voraus.
------------------
Viele Grüße,
Jürgen
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP