Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  VBA: Part in Assembly aktivieren?

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:  VBA: Part in Assembly aktivieren? (2661 mal gelesen)
SEHER
Mitglied
Systemanalytiker


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

Beiträge: 1203
Registriert: 13.03.2001

Inventor 2 bis 2022
häufig wechselnder Rechnerverkehr

erstellt am: 26. Mrz. 2003 19:58    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 Forum
wie kann ich in einem Assembly ein Part mittels VBA aktivieren?

Gruß
Seher

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: 26. Mrz. 2003 20: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 SEHER 10 Unities + Antwort hilfreich

Hi SEHER,

es geht, wenn du weisst wie das Teil heisst.

Code:

Public Sub Selektiere()
  Call HoleElemente(ThisApplication.ActiveDocument.ComponentDefinition.Occurrences)
End Sub

Public Function HoleElemente(Elemente As ComponentOccurrences)
  Dim oObject As Object
  For Each oObject In Elemente
    If oObject.Name = "Schraube:1" Then  'Ersetzen durch deine Datei
      ThisApplication.ActiveDocument.SelectSet.Select oObject
      Debug.Print oObject.Name & " wurde selektiert"
    End If
    Call HoleElemente(oObject.SubOccurrences)
  Next
End Function


------------------
Grüße daywa1k3r

[Diese Nachricht wurde von daywa1k3r am 27. März 2003 editiert.]

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

SEHER
Mitglied
Systemanalytiker


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

Beiträge: 1203
Registriert: 13.03.2001

erstellt am: 27. Mrz. 2003 12:11    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

Thanx daywa1k3r,
klappt gut das selektieren, aber weißt Du auch wie ich ein Bauteil aktiviere und anschließend wieder den Zusammenbau aktiviere.

Folgender Hintergrund: In einem Zusammenbau möchte ich automatisch den Einzelteilen Eigenschaften aus dem PPS anhängen. Die PPS Informationen bekomme ich schon gelesen.
Vorgehensweise: Zusammenbau öffnen jedes Einzelteil aktivieren um die Eigenschaften zu schreiben und den Zusammenbau wieder aktivieren.
Oder gib es da einen einfacheren Weg???

Gruß
Seher

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: 27. Mrz. 2003 15:07    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 SEHER 10 Unities + Antwort hilfreich

Hi SEHER,

ich weiss jetzt nicht was PPS ist, aber das ist auch egal, weil die Daten hast du ja schon ausgelesen. Wenn du die Eigenschaften an jedes Teil in deiner Baugruppe übergeben willst, dann wirst du wohl auf jedes Teil zugreiffen müssen. Das heisst nicht dass du jedes Teil selektieren must. Da könntest du zB. eine andere Variable deklarieren zB. Dim oOcc as ComponentOccurence, und auch eine Dim oPart as PartDocument, also:

Code:

Public Sub Eigenschaften()
  Call HoleEigenschaften(ThisApplication.ActiveDocument.ComponentDefinition.Occurrences)
End Sub

Public Function HoleEigenschaften(Elemente As ComponentOccurrences)
  Dim oOcc As ComponentOccurrence
  Dim oPart As PartDocument
  Dim i as Integer
  Dim j as Integer
 
  For Each oOcc In Elemente
    If oOcc.Definition.Document.DocumentType = kPartDocumentObject Then
      Debug.Print ""
      Set oPart = oOcc.Definition.Document
      Debug.Print "********************************************************************"
      Debug.Print oPart.DisplayName
      For i = 1 To oPart.PropertySets.Count
        For j = 1 To oPart.PropertySets.Item(i).Count
        On Error Resume Next
        Debug.Print oPart.PropertySets.Item(i).Item(j).DisplayName & ": " & oPart.PropertySets.Item(i).Item(j).Value
        If Err.Number <> 0 Then
          Err.Clear
        End If
        Next
      Next
      Debug.Print "********************************************************************"
      Debug.Print ""
    End If
    Call HoleEigenschaften(oOcc.SubOccurrences)
  Next
End Function


Die Ausgabe im Direkt Fenster ist begrenzt (nicht alle Einträge passen rein ), aber du sollst auch nur in etwa verstehen wie es funktionieren sollte.

Ein PartDocument hat 4 Eigenschaften oPart.PropertySets.Item(i).Count = 4

Summary Information, {F29F85E0-4FF9-1068-AB91-08002B27B3D9}
Document Summary Information, {D5CDD502-2E9C-101B-9397-08002B2CF9AE}
Design Tracking Properties, {32853F0F-3444-11D1-9E93-0060B03C1CA6}
User Defined Properties, {D5CDD505-2E9C-101B-9397-08002B2CF9AE}

Und die einzelnen Einträge sind dann oPart.PropertySets.Item(i).Item(j).DisplayName Items von oPart.PropertySets.Item(i) , also die mit den Index j.

So kannst du auf alle Teile einer Baugruppe und auf alle Eigenschaften zugreiffen. Du kannst dann auch die Daten die du aus PPS (?) ausgelesen hast setzen. zB. oPart.PropertySets.Item(i).Item(j).Value = "Test Wert" usw.

Studiere ein wenig den Code und ich bin mir sicher du begreiffst es sehr bald.

Bis später...

------------------
Grüße daywa1k3r

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



Entwicklungsingenieure (m/w/d) im Bereich Geräteentwicklung für Direktbefestigungssysteme

Wir sind ein führendes Technologie- und Ingenieurunternehmen. Unsere Dienstleistungen erstrecken sich von der Ideenfindung über die Konzeption und Konstruktion sowie FE-Berechnungen bis hin zur Fertigungszeichnung der Produkte inklusive Prototypenbau. Unsere namhaften Kunden aus der Automobil- und Investitionsgüterindustrie sowie der Luft- und Raumfahrt vertrauen und setzen auf uns als kompetenten Entwicklungspartner....

Anzeige ansehenEntwicklung
SEHER
Mitglied
Systemanalytiker


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

Beiträge: 1203
Registriert: 13.03.2001

erstellt am: 27. Mrz. 2003 19: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 daywa1k3r,
vielen vielen Dank.
Funzt super!
'Debug.Print oPart.PropertySets.Item(i).Item(j).DisplayName & ": " &
'oPart.PropertySets.Item(i).Item(j).Value
hab ich deaktiktiviert, da dat nicht wollte.

Gruß
Seher

Achja
PPS = Produktionsplanung und Steuerungsoftware die Einkauf, Lagerhaltung, Stücklisten- und Artikelverwaltung ... beinhaltet (hier ne dbase DB).

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