Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Baugruppen

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:  Baugruppen (1408 mal gelesen)
VOSTA1
Mitglied
techn. Angestellter


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

Beiträge: 108
Registriert: 23.12.2002

erstellt am: 30. Mrz. 2004 16: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

Hallo,
bitte um Hilfe für folgende Problem :

Möchte aus einer *.iam alle verwendeten Baugruppen (*.iam) und Teile (*.ipt) und die Anzahl der Bauteile(z.B. Schraube ist 5mal vorhanden) auslesen.
Ferner würde ich gerne die Poperties einer *ipt verändern.

Wie kann ich die Poperties einer beliebigen test.ipt verändern ohne das die test.ipt geöffnet wird.

Ziel ist folgendes:
Ich öffne eine beliebige Baugruppe und Starte ein Makro siehe Beispiel. Das Makro soll nun alle verwendeten Bauteile und Baugruppen und deren Anzahl auslesen.

Anschliessend soll z.B eine Eigenschaft (Proberty) überprüft und gegebenenfalls geändert werden.


Mit den beiden nachfolgenden Makros kann ich zwar die verwendeten Baugruppen und Teile auslesen, aber nicht deren Anzahl
bzw. ich kann die Properties ändern, dazu muß ich das Teil aktiv auf den Bildschirm holen.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Private Sub ipt_iam_assembly()
 
  Dim oApp As Inventor.Application
  Set oApp = ThisApplication
 
  Dim oDoc As AssemblyDocument
  Set oDoc = oApp.ActiveDocument
 
  For i = 1 To oDoc.ReferencedFiles.Count
 
 
  MsgBox oDoc.ReferencedFiles(i).FullFileName
  MsgBox oDoc.ReferencedFiles(i).InternalName
  'usw.
  '1. Wie bekomme ich die Anzahl der *.iam  bzw *.ipt wenn, Teil oder Baugruppe mehrfach vorhanden ????
  '2. Wie kann ich die Properties *.iam  bzw *.ipt ansprechen, ohne das das Bauteil bzw. Baugruppe sichtbar geöffnet wird.

'''  Call Property_bearbeiten( ???? *.iam bzw.  *.ipt  ????? ) wie muß der Code aussehen


  Next i
 
  MsgBox i
 
 
End Sub


'+++++++++++++++++++++++++++++++++++++++++++++++++++
Sub Property_bearbeiten()

Dim oDoc As PartDocument
Set oDoc = ThisApplication.ActiveDocument

MsgBox oDoc.PropertySets("{F29F85E0-4FF9-1068-AB91-08002B27B3D9}").Item("Title").Value

End Sub


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

lbcad
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau und CAD-Trainer



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

Beiträge: 3794
Registriert: 15.02.2001

DELL Precision 7520 Win10Pro-64
Inventor mit Vault Professional 2022
---------------------
Während man es aufschiebt,
verrinnt das Leben.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)

erstellt am: 02. Apr. 2004 09:09    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 VOSTA1 10 Unities + Antwort hilfreich

Hi VOSTA1,

bin derzeit auch an so einem Thema dran - wenn ich mal wieder dazu komme - Ich melde mich dann nochmal - Oder bist Du schon weiter gekommen?

------------------
Gruß Lothar

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

waldi
Mitglied
 Softwerker


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

Beiträge: 272
Registriert: 07.08.2001

erstellt am: 06. Apr. 2004 07:55    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 VOSTA1 10 Unities + Antwort hilfreich

Hi,

wie oft die Teile in deiner Baugruppe vorkommen, musst du glaube ich selbst zählen.
Ansonsten würde ich nicht über ReferencedFiles, sondern direkt über die ComponentOccurrences gehen. Da hast du dann auch Zugriff auf die ComponentDefinition und die Properties, ohne die Teile explizit zu öffnen.
Da gibts in der APIProgrammier- und Anwendungsschnittstelle (Application Programming Interface) Hilfe auch ein Beispiel zu den ComponentOccurrences.

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

VOSTA1
Mitglied
techn. Angestellter


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

Beiträge: 108
Registriert: 23.12.2002

erstellt am: 06. Apr. 2004 09:50    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 für die Antworten auch in der PM.

Der Tip mit den ComponentOccurrences ist richtig, damit bekommt man die Anzahl der Teile hin. Man muß jedoch noch noch Schleifen programmieren, da jedes Teil mehrmals vorkommen kann.

Mein Problem ist noch den genauen Code herauszufinden, mit dem ich die *.ipt und *.iam ansprechen kann.


Mit dieser sub kann ich alle Teile auslesen
++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Private Sub AssyComps()

  Dim oApp As Application
  Set oApp = ThisApplication

  Dim oDoc As AssemblyDocument
  Set oDoc = oApp.ActiveDocument
 
  Dim oCompOccs As ComponentOccurrences
  Set oCompOccs = oDoc.ComponentDefinition.Occurrences

MsgBox oCompOccs.Count, , "Anzahl Occurances"

  Dim oCompOcc As ComponentOccurrence
   
  For Each oCompOcc In oCompOccs

    MsgBox CompOcc.DefinitionReference.ReferencedFileDescriptor.FullFileName

'wie muß der Code für die Properties der *.ipt  hier aussehen, damit ich z.B. Status von "InBearbeitung" in "Freigegeben" ändern kann  ????????????????
'CompOcc...................


  Next oCompOcc

End Sub
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
MFG


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: 06. Apr. 2004 15:52    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 VOSTA1 10 Unities + Antwort hilfreich

Hallo Vosta,

was hast Du den fuer eine Homepage angegeben in Deinem Profil ???


Gruesse,

Paul

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

waldi
Mitglied
 Softwerker


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

Beiträge: 272
Registriert: 07.08.2001

erstellt am: 06. Apr. 2004 16: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 VOSTA1 10 Unities + Antwort hilfreich

Von der ComponentOccurrence kommst du auf die Definition, von da auf das Document und dann runter auf die PropertySets.

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

lbcad
Ehrenmitglied V.I.P. h.c.
Dipl.-Ing. Maschinenbau und CAD-Trainer



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

Beiträge: 3794
Registriert: 15.02.2001

DELL Precision 7520 Win10Pro-64
Inventor mit Vault Professional 2022
---------------------
Während man es aufschiebt,
verrinnt das Leben.
Lucius Annaeus Seneca
(ca. 4 v. Chr - 65 n. Chr.)

erstellt am: 07. Apr. 2004 09:42    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 VOSTA1 10 Unities + Antwort hilfreich

Und dann muß man auch noch zwischen "normalen" Baugruppen und Schweißbaugruppen unterscheiden. Abgeleitete Kompenten sind auch ein Sonderfall!

------------------
Gruß Lothar

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