Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Drawing-Name eines ausgewählten Parts ermitteln

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte
Autor Thema:  Drawing-Name eines ausgewählten Parts ermitteln (1357 mal gelesen)
MasterB
Mitglied


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

Beiträge: 4
Registriert: 22.09.2011

erstellt am: 22. Sep. 2011 11:57    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 alle zusammen,

ich versuche derzeit ein Addin für Inventor zu schreiben (C#).
Ich möchte über eine ausgewählte Linie in einem DrawingDocument auf den Exemplarnamen
des entsprechenden Parts (ist in einem Assembly verbaut - dieses ist in der Ansicht abgebildet) zugreifen.
In VBA funktioniert das auch einwandfrei mit folgendem Code

Code:
sOccurrenceName = oDrawDoc.SelectSet.Item(1).Parent.ModelGeometry.ContainingOccurrence.Name;

Leider komme ich in C# nicht mehr über das SelectSet and die ModelGeometry und die Occurrence ran.
Hat einer von euch schon einmal eine ähnliche Anforderung gehabt, bzw. benötigt einen ähnlichen Workaround?

Es geht mir grundsätzlich darum, dass ich im Assebly Dokument beim Exemplarname Infos eintragen kann und diese dann in der Zeichnung über
einen Führungslinientext anzeigen kann (funktioniert auch schon bis auf die Abfrage des Exemplarnamens)

Viele Grüße

Sebastian

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 22. Sep. 2011 17:03    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 MasterB 10 Unities + Antwort hilfreich

Hallo

Ich vermute mal es liegt daran, daß oDrawDoc.SelectSet.Item(1) vom Typ Variant oder Object ist. Unter VBA wird das Handling der Typen deutlich laxer gehandhabt. Versuche mal in mehreren Schritten dahin zu kommen. Caste oDrawDoc.SelectSet.Item(1) als DrawingCurveSegment und versuch mal von dort aus an den Namen zu kommen.

------------------
MfG
RK

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

MasterB
Mitglied


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

Beiträge: 4
Registriert: 22.09.2011

erstellt am: 22. Sep. 2011 18: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 rkauskh,

danke für den Hinweis!
Hab mich bereits auch nach diesem Schema bis zur DrawingCurve hochgearbeitet,
nur endet hier der Weg, da die ModelGeometry dann von Typ Object sein dürfte und es
nicht mehr bis zur Occurrence weiter geht da keine entsprechende Eigenschaft oder
Methode mehr angeboten wird 

Poste hier folgend mal den entprechenden Code, denn vieleicht hab ich ja auch etwas übersehen
das euch gleich auffällt 

Code:
oDrawDoc = (DrawingDocument)InventorApplication.ActiveEditDocument;
oActiveSheet = oDrawDoc.ActiveSheet;
oDrawingCurveSegment = (DrawingCurveSegment)oDrawDoc.SelectSet[1];
oDrawingCurve = oDrawingCurveSegment.Parent;

//Ab hier komme ich nicht mehr weiter da es beim Typ Object nur mehr div. Standardmethoden gibt
oDrawingCurve.ModelGeometry.....


SG

Sebastian

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 22. Sep. 2011 19:36    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 MasterB 10 Unities + Antwort hilfreich

Hallo

oDrawingCurve.ModelGeometry dürfte meistens vom Typ Edge oder EdgeProxy sein. Das es hier mehrere Möglichkeiten des Typs gibt, besteht die Möglichkeit von Ausnahmefehlern. Deswegen muß der Typ explizit passen. Hier hilft nur der Reihe nach die möglichen Typen testen und wenn keiner paßt einen Programmexit vorsehen. Unter VB gibt's dafür die TryCast-Anweisung. Für C# (kenn mich damit leider gar nicht aus) gibt's sicher etwas entsprechendes.

------------------
MfG
RK

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

MasterB
Mitglied


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

Beiträge: 4
Registriert: 22.09.2011

erstellt am: 23. Sep. 2011 17:32    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 RK,

danke für den Hinweis, so funktionerts bis zum SurfaceBody (hab mal diesen Typ verwendet) - hier bekomm ich aber nur den Namen des Volumenkörpers im Part.
Gibt es deines Wissens irgendwo eine Doku welche Typen möglich sind, oder kann man diese aus dem Object Model ablesen?

SG
Sebastian

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 23. Sep. 2011 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 MasterB 10 Unities + Antwort hilfreich

Hi

Warum nimmst du nicht dein ContainingOccurrence.Name ausgehend von dem Edge/EdgeProxy?

------------------
MfG
RK

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

MasterB
Mitglied


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

Beiträge: 4
Registriert: 22.09.2011

erstellt am: 24. Sep. 2011 15:17    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 RK,

hab bis jetzt die Edge verwendet und die stellt leider keine
ContainingOccurrence zur Verfügung(daher das Problem).
Aber die EdgeProxy - jetzt funkts 

Besten DANK!!!

------------------
SG
Sebastian

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