Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  InstanceName aber ohne Selection

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:  InstanceName aber ohne Selection (1262 mal gelesen)
HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 21. Jan. 2013 16: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

Hallo zusammen,

wie ihr wisst erfreue ich euch ja gern mit Knobelaufgaben, die mich sehr beschäftigen. Dieses Mal habe ich eine Applikation, welche Annotation-Informationen (Notizen) aus einer Produktstruktur ausliest. Dabei habe ich verschiedene Captures (Aufnahmen? – ich weiß nicht wie der Deutsche Begriff dazu wäre, das Kamerasymbol jedenfalls :-)), welche meine Annotations enthalten. Diese Annotations sind nun wieder über die Produktstruktur verteilt. Und jetzt kommt die Herausforderung:

Ich benötige den Instanznamen des Produktes / Teils, in dem sich die Annotation, des Captures befindet, da ein Teil mehrfach verbaut sein kann oder die Namen der Annotations doppelt vergeben sind.

Dafür nutze ich folgende Funktion.

Code:

Private Function getInstanceNameToProductFromObject(ByRef i_objWork As Object) As String

    Dim selWork As INFITF.Selection
   
    Set selWork = CATIA.ActiveDocument.Selection
   
    Call selWork.Clear
    Call selWork.add(i_objWork)
    getInstanceNameToProductFromObject = selWork.Item2(1).LeafProduct.name

End Function


Diese Funktion, da mir nix Besseres eingefallen ist, nutzt die Selection und davon die Methode LeafProduct(). Nur diese Funktion hat die Verarbeitungszeit meines Tools um den Faktor 5 erhöht. Das ist aus meiner Sicht nicht tragbar. Drum stelle ich die Frage in die Runde, ob nicht jemand noch eine andere Idee hätte, möglichst günstig (schnell) zum Instanznamen des übergeordneten Produkts einer Annotation zu kommen.

An die hier aufgeführte Funktion übergebe ich direkt das Annotation Feature.

Zum Zeitpunkt des Aufrufes der Funktion ist mir bereits die Produktstruktur bekannt (mit Inszanznamen), hilft mir derzeit aber auch nicht weiter, da ich nicht weiß wie ich eineindeutig sonst ermitteln könnte, ob die Annotation in einem Produkt ist.

Ich bin auf jeden Fall auf eure Ideen gespannt. :-)

Vielen Dank!

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 21. Jan. 2013 23:24    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 HoBLila 10 Unities + Antwort hilfreich

Hallo HoBLila,

ich habe hin und her überlegt, doch das Funktionieren Deines Skriptes geht aus meiner Sicht nur unter einer Voraussetzung: Deine als Eingabe fungierende "Annotation" ist schon ein "SelectedElement". Denn wie solltest Du sonst auf die genutzte "Instance" kommen?

Wenn ich mit dieser Annahme aber Recht habe, musst Du ja das "SelectedElement" nicht erst noch einmal in einer "Selection" verarbeiten, sondern kannst doch daraus direkt die "Instance" ermitteln. Etwa so:

Code:
Private Function getInstanceNameToProductFromObject(ByRef i_objWork As INTITF.SelectedElement) As String

    getInstanceNameToProductFromObject = i_objWork.LeafProduct.name

End Function


Oder habe ich da einen Denkfehler?


mfg,
Lusilnie

------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 22. Jan. 2013 09:29    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 Lusilnie,

vielen Dank für Deine Antwort.
Meien Funktion funktioniert schon, Du hast quasi auch nichts anderes geschrieben, nur dass Du die das Selektieren vorschaltest.
Mein Problem ist aber, dass ich gar nicht selektieren möchte. Ich würde gern völlig auf das Selection-Objekt verzichten.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

roccat
Mitglied
Konstrukteur


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

Beiträge: 172
Registriert: 19.02.2010

WinXP/Win7
Office XP/2007
Catia V5 R16-R19, VB6.0, VBA, BASCOM-AVR
VB .Net 2010

erstellt am: 31. Jan. 2013 16:56    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 HoBLila 10 Unities + Antwort hilfreich

Hallo Henry,

wie du sicher selber schon versucht hast kommt man mit

Code:
MeineAnno.Parent.Parent...Name

nicht ans Ziel.

Aber wie kommst du zu der Annotation also "i_objWork"?

Müsstest doch vorher schon über die Struktur oder eine Selection gekommen sein, also am InstanceName vorbei oder?

mfG
Mario

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 01. Feb. 2013 09:19    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 Mario,

danke für Deine Gedanken zum Thema!
Ja für den Normalfall hast Du völlig Recht und ich müsste wissen, wo ich mich gerade befinde.

In meinem Fall werte ich die Captures aus der FTA-Workbench aus (also die blauen Fotoapparate). Diese sind mit Annotations verknüpft, die ich auswerten will. Diese verknüpften Annotations können aber leider überall in der Produktstruktur ihren Ursprung haben. Leider auch in irgendeinem SubProduct oder Part. Hinzu kommt noch, dass für meinen Fall entscheidend ist, aus welcher Instanz eines Parts die Annotation stammt, auch wenn das Capture an einer völlig anderen Stelle in der Baumstruktur sitzt.

Z.B. kann ein Normteil, welches eine Annotation hat, mehrfach verbaut sein. Das Capture zeigt nun einen Teilausschnitt des Produktes und ich muss wissen welche Annotations und welche Instanz dazu. --> Für die weitere Verarbeitung ist es entscheidend zu wissen wo die entsprechenden Annotations zu finden sind.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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