Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Bauteile in IDW selektieren

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:  Bauteile in IDW selektieren (1955 mal gelesen)
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: 28. Feb. 2009 13:14    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

In einer Zeichnungsansicht kann man über den Auswahlfilter "Bauteile" alle Linien die zu einem Bauteil gehören gleichzeitig selektieren. Geht das über VB auch?
Kurz wo ich hin möchte:
Ich habe ein Skript das in einer Schleife alle Linien einzeln durchläuft und im zugehörigen Bauteil nach einem Attribut an der entsprechenden Kante sucht. Nur ganz bestimmte Bauteile haben unter Umständen so ein Attribut. In größeren IDW's dauert es aber viel zu lange alle Linien einzeln zu prüfen. Meine Idee wäre jetzt, erst jeweils ein Bauteil zu nehmen, zu prüfen ob dieses einem Kriterium entspricht das signalisiert "hier kann's kein Attribut geben, nimm das nächste Bauteil". Dann würden in einem Schleifendurchlauf 100-200 Linien auf einmal wegfallen. Dementsprechend möchte ich, wenn ein Bauteil gefunden wurde das Attribute haben kann, aus dem gewählten Bauteil alle Linien prüfen. Damit erhoffe ich mir, die Laufzeit drastisch zu reduzieren.

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

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

PaulSchuepbach
Moderator
Programmierer




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

Beiträge: 1005
Registriert: 01.10.2003

erstellt am: 28. Feb. 2009 13: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 Nur für rkauskh 10 Unities + Antwort hilfreich

Hallo,

Alle Linien mit einer Iteration zu durchlaufen und dann auf's Bauteil gucken, ob's da ein Attribut gibt, dauert viel zu lange
In der Zeichnung weisst Du ja, welches Bauteil abgebildet ist. Also:

- Bauteil öffnen (OpenVisible = False) mit AttributeManager.FindObjects findest Du in Sekundenbruchteilen die Flächen/Kanten, die ein bestimmtes AttributeSet und/oder Attribute mit/ohne einem bestimmten Wert beinhalten
- der AttributeManager gibt Dir eine ObjectCollection zurück
- falls .Count = 0: keine Attribute gefunden
- falls .Count > 0: alle gefundenen Elemente sind in der ObjectCollection

---> geht schnell wie das Licht und braucht nur ein paar Zeilen Code

HTH

------------------
Grüsse, Paul

Inventor-Programmierung, Inventor-Tools und Inventor API-Schulung

Meine Tochter auf Youtube

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

daywa1k3r
Moderator
Softwareentwickler




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

Beiträge: 3497
Registriert: 01.08.2002

Alienware m17x, Win7, Inventor2012

erstellt am: 28. Feb. 2009 13:35    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 rkauskh 10 Unities + Antwort hilfreich

Hallo,

der erste Treffer in der Programmierungshilfe - Suchbegriff: Attribute 

------------------
Grüße Igor

FX64 Software Solutions - Inventor Tools

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: 28. Feb. 2009 14:02    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

DANKE euch beiden.  

Ich habe in der Hilfe schon viele Suchbegriffe probiert, aber den naheliegendsten natürlich ausgelassen.    

Die IDW stellt aber kein einzelnes Bauteil, sondern eine Baugruppe mit Unterbaugruppen dar. Kann ich dann so rangehen, daß ich über referenzierte Documente mir eine Liste der Bauteile (Baugruppen haben kein Attribut) hole und die mit Öffnen, Prüfen, Schließen durchgehe?

EDIT: Stimmt FindAttributes ist im Vergleich zu meiner Methode rasant schnell und mit FindObjects (übrigens Treffer Nr. 3 der Programmierungshilfe  ) krieg ich die Objekte in die ObjectCollection. Jetzt steh ich Amateur aber vor dem Problem, wie ich mit der Sammlung einen Bezug zu meinen Linien in der IDW herstelle. Ich habe vorhin unterschlagen, das abhängig vom Attribut die Linien in der IDW auf einen anderen Layer verschoben werden sollen. Sorry, aber es ist manchmal schwer vorweg alle notwendigen Informationen von den überflüssigen zu trennen.

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

[Diese Nachricht wurde von rkauskh am 28. Feb. 2009 editiert.]

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: 02. Mrz. 2009 19: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

Hallo

Kann man, wie einen Beitrag höher beschrieben, einen Bezug von der ObjectCollection zu den DrawingCurves in der IDW herstellen? Oder wenn nicht, gibt es einen anderen möglichen Ansatz?

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

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: 16. Mrz. 2009 00:12    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

Ich hab mir jetzt folgendes gebastelt.
1. Mit findobjects die Collection der Bauteile mit Attribute holen.
2. Über AllLeafOccurrences in der IDW eine Collection aller Bauteile die in der IDW referenziert sind holen
3. Eine Collection aus der "Schnittmenge" der beiden Collectionen bilden.
4. Aus dem DrawingCurvesEnumerator der Collection-Mitglieder die Linien holen und das Attribut aus dem Part holen.

Ergebnis: Laufzeit 70 Sekunden, statt 35 Minuten.    

Danke nochmal für eure Tipps, die mich, wie immer, in die richtige Richtung geschubst haben.    

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

[Diese Nachricht wurde von rkauskh am 16. Mrz. 2009 editiert.]

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