Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Mehrkörperbauteil als Baugruppe speichern

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:  Mehrkörperbauteil als Baugruppe speichern (2501 mal gelesen)
noctis79
Mitglied
Konstrukteur/ CAD-Administrator


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

Beiträge: 164
Registriert: 07.10.2009

Inventor Pro 2017
Cideon Workspace

erstellt am: 29. Nov. 2011 12:27    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

Falls es jemand braucht...
Vorhaben:
Vom Kunden wurde eine CATpart Datei geschickt. Diese beinhaltet eingentlich eine Baugruppe.
Beim öffnen im IV wird daraus ein Mehrkörperbauteil.
Jeder Volumenkörper in diesem Teil stellt also ein eigenständiges Bauteil dar.
Aufgabe:
Aus der ipt alle Volumenkörper rausspeichern, in eine asm auf Urpsrung wieder einsetzen und die Teile fixieren.

Code:
Sub Ref()

Dim oapp As Inventor.Application
Set oapp = ThisApplication

If oapp.ActiveDocument Is Nothing Then
MsgBox "Kein Dokument geöffnet", vbInformation
Exit Sub
End If

If oapp.ActiveDocument.DocumentType <> kPartDocumentObject Then
MsgBox "Funktion ist nur bei Bauteilen zulässig", vbInformation
Exit Sub
End If

Dim odoc As Inventor.PartDocument
Set odoc = oapp.ActiveDocument

If odoc.ComponentDefinition.HasMultipleSolidBodies = False Then
MsgBox "Kein Mehrkörperbauteil geöffnet", vbInformation
Exit Sub
End If

Dim oASM As Inventor.AssemblyDocument
Dim oTG As TransientGeometry
Set oTG = ThisApplication.TransientGeometry
Dim oMatrix As Matrix
Set oMatrix = oTG.CreateMatrix
Call oMatrix.SetTranslation(oTG.CreateVector(0, 0, 0))

Set oASM = oapp.Documents.Add(kAssemblyDocumentObject)
Call odoc.Save

For i = 1 To odoc.ComponentDefinition.SurfaceBodies.Count Step 1
' Abfrage auf Export Häckchen raus / Häckchen einfach setzen
'If odoc.ComponentDefinition.SurfaceBodies.Item(i).Exported = True Then
odoc.ComponentDefinition.SurfaceBodies.Item(i).Exported = True

Dim newdoc As Inventor.PartDocument
Dim newfile As String
newfile = Left(odoc.FullFileName, Len(odoc.FullFileName) - 4) & "_" & odoc.ComponentDefinition.SurfaceBodies.Item(i).Name & ".ipt"

Set newdoc = oapp.Documents.Add(kPartDocumentObject)

Dim oDef As DerivedPartUniformScaleDef

Set oDef = newdoc.ComponentDefinition.ReferenceComponents.DerivedPartComponents.CreateUniformScaleDef(odoc.FullFileName)
oDef.ExcludeAll
oDef.Solids.Item(i).IncludeEntity = True


Call newdoc.ComponentDefinition.ReferenceComponents.DerivedPartComponents.Add(oDef)
Call newdoc.SaveAs(newfile, False)
newfile = Left(odoc.FullFileName, Len(odoc.FullFileName) - 4) & "_" & odoc.ComponentDefinition.SurfaceBodies.Item(i).Name & ".stp"
Call newdoc.SaveAs(newfile, True)
Call oASM.ComponentDefinition.Occurrences.Add(newdoc.FullFileName, oMatrix)
oASM.ComponentDefinition.Occurrences.Item(i).Grounded = True
Call newdoc.Close(False)

'End If

Next

oASM.Activate
oapp.ActiveView.GoHome
If oASM.ComponentDefinition.Occurrences.Count = 0 Then
oASM.Close (True)
MsgBox "Im Bauteil wurde kein Volumenkörper zum Export ausgewählt!", vbInformation
End If

End Sub


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

LocalError
Mitglied
Dipl. Ing


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

Beiträge: 166
Registriert: 26.06.2008

AutoCAD Machanical 2010 / 2013
Inventor 2010 / 2013
Vault 2010 / 2013
CATIA V5
Win7 64
XP 64

erstellt am: 02. Dez. 2011 07: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 Nur für noctis79 10 Unities + Antwort hilfreich

Super! Nach dem Auskommentieren von zwei Zeilen läuft es bei mir unter Inv2010 prima:
'odoc.ComponentDefinition.SurfaceBodies.Item(i).Exported = True

'oapp.ActiveView.GoHome

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