Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Bauteile ersetzen

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 ersetzen (2616 mal gelesen)
RoccoRalle
Mitglied



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

Beiträge: 52
Registriert: 24.04.2006

MS Windows 7-64bit SP1
4GB RAM
AIP 2010, SP3
PSP 2010

erstellt am: 01. Sep. 2006 11:00    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

Hi Forum,

ich habe folgendes vor:
Ich habe eine Baugruppe mit Einzelteilen. In der Entwicklungsfase müssen einige Bauteile ersetzt werden. Dieses mache ich mit der SaveAs Methode. Das funktioniert auch bis zu einem gewisen Punkt:
Wenn die zu speichernde neue Datei schon in der Baugruppe verbaut ist (Dateiname vorhanden), bekomme ich eine Fehlermeldung.

Wie kann ich es machen, dass bereits verbaute Teile (Dateiname vorhanden) in der Baugruppe ersetzt werden?

In der mitgelieferten Hilfe konnte ich nichts darüber finden.

Weiterhin müssen in der Baugruppe einzelne Teile herausgefiltert werden welche welche über gleiche Parameter verfügen. Das suchen ist ja kein Problem, aber diese Teile müssen durch VBA selektiert werden. Wie geht das?

Ich hoffe es kann mir einer helfen (oder zwei ...) .

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 01. Sep. 2006 14: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 RoccoRalle 10 Unities + Antwort hilfreich

Hallo,

ersetzen:

Code:

Dim odoc2 as Document
Set odoc2 = ThisApplication.ActiveDocument
Dim oCompDef As ComponentDefinition
Set oCompDef = odoc2.ComponentDefinition

Dim oOccs As ComponentOccurrences
Set oOccs = oCompDef.Occurrences
Dim oOcc As ComponentOccurrence

For Each oOcc In oOccs
    On Error Resume Next
i = 1

    Do While ostr(i) <> ""
        If Right(oOcc.Definition.Document.FullFileName, 3) = "iam" And oOcc.Name = ostr(i) Then

            oDer = oOcc.Definition.Document.FullFileName
       
            Call oIPT(oDer)

            Call oOcc.Replace(oname, True)

        End If
        i = i + 1
    Loop
Next


Du mußt halt noch irgendwie eine Zuordnung zwischen den zu ersetzenden Teilen machen, A.ipt ersetzt durch b.ipt.

Teile selektieren:

Code:

Function oEnabled()
Dim ThePane As BrowserPane

Set odoc = ThisApplication.ActiveDocument

Set ThePane = odoc.BrowserPanes("AmBrowserArrangement")
Dim temp As String
Dim oTopNode As BrowserNode
Set oTopNode = ThePane.TopNode

If oTopNode.Selected = True Then
oflag = True
Exit Function
End If

i = 1
Dim Node As BrowserNode 'need to loop thru nodes to match label
For Each Node In oTopNode.BrowserNodes

    If Node.Selected = True Then
        ostr(i) = Node.BrowserNodeDefinition.Label
        temp = Node.BrowserNodeDefinition.Label

        i = i + 1
    End If
Next

For Each Node In oTopNode.BrowserNodes

    If Node.Selected = False Then
    Node.DoSelect
    End If
Next

End Function


Hilft das?

Oder das Ganze mit dem Designassistenten machen.

Gruß
Reinhard

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

Charly Setter
Ehrenmitglied V.I.P. h.c.




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

Beiträge: 11977
Registriert: 28.05.2002

Trau keiner Diva unter SP2....

erstellt am: 01. Sep. 2006 22:31    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 RoccoRalle 10 Unities + Antwort hilfreich

RMB: Komponente ersetzen 

------------------
Der vernünftige Mensch paßt sich der Welt an;
der unvernünftige besteht auf dem Versuch, die Welt sich anzupassen.

Deshalb hängt aller Fortschritt vom unvernünftigen Menschen ab.
(George Bernard Shaw)

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

RoccoRalle
Mitglied



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

Beiträge: 52
Registriert: 24.04.2006

erstellt am: 04. Sep. 2006 10: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

Besten Dank,

leider selektiert die Funktion "oEnabled" nicht automatisch die Bauteile, welche ich ersetzen will.
Wie funkionier es, wenn ich Bauteile in einer Unterbaugruppe selektieren lassen möchte? Ich kann auch damit leben, wenn ALLE Bauteile selektiert werden.

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 04. Sep. 2006 22:53    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 RoccoRalle 10 Unities + Antwort hilfreich

Hallo RoccoRalle,

erklär doch nochmal was du durch was ersetzen willst.

Den Code mußt du natürlich noch an dein Vorhaben anpassen.
Alle Dateien zu selektieren wird nichts bringen, oder willst du alle Dateien durch die gleiche ersetzen?
die raplace-methode ersetzt das gewählte Modell durch das Modell mit dem Pfad oname. Der Zweite Parameter gibt an, ob alle Vorkommnisse in der aktiven Baugruppe erstzt werden sollen.
Um Dateien in der Unterbaugruppe zu ersetzen mußt du in die Unterbaugruppe wechseln.
Wie übergibst du dem Programm was ausgetauscht werden soll?

Gruß
Reinhard


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

RoccoRalle
Mitglied



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

Beiträge: 52
Registriert: 24.04.2006

erstellt am: 05. Sep. 2006 10:41    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 Reinhard,

ich versuche es recht simpel zu formulieren:

ich habe ein VBA-Tool geschrieben um Normteilen aus dem Inhaltscentern Material zuweisen zu können, damit die Normteildatenbanken nicht geändert bzw. erweitert werden müssen und somit die volle Funktionalität von IV 11 (Konstruktionsassistenten) genutzt werden können. Die Normteile werden dann in der Baugruppe unter einem anderen Namen gesichert (Materialabhängig).
Ist das Normteil mit dem entsprechenden Material bereits vorhanden und in der Baugruppe verbaut, muß ich dieses Normteil in der Baugruppe ersetzen (replace) da beim VBA-Befehl "saveas" ein fehler auftritt.
Ich hoffe die Beschreibung ist verständlich.

Und jetzt suche ich ein verfahren, dass die bereits vorhandenen Bauteile selbstständig über VBA ausgetauscht werden.

Gruß Ralf

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 06. Sep. 2006 12:34    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 RoccoRalle 10 Unities + Antwort hilfreich

Hallo Rocco,

ich verstehe dein Problem nicht wirklich.

Du hast eine Baugruppe: BG.iam.
Darin ist ein Teil verbaut: Teil.ipt, entspricht Schraube M6x20 DIN 912 A2.
Diese Teil hat einen Pfad: D:\xxx\Teil.ipt.
Jetzt möchtest du aus Schraube M6x20 DIN 912 A2 Schraube M6x20 DIN 912 A4 machen und unter D:\xxx\Teil.ipt abspeichern?

Erklär dein Problem mal mit einem Beispiel.
Struktur der BG und Pfad der Dateien?

Gruß
Reinhard

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

RoccoRalle
Mitglied



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

Beiträge: 52
Registriert: 24.04.2006

erstellt am: 06. Sep. 2006 14:06    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

Hi,

Also:
Ich habe eine Baugruppe BG.iam. In dieser Baugruppe befinden sich die Schrauben M8x30-A2.ipt, M8x30-A4.ipt und M8x30.ipt.

Jetzt möchte ich dass die Schraube M8x30.ipt durch M8x30-A4.ipt über ein VBA-Tool automatisch ersetzt wird.

Eigendlich eine simple Aufgabe aber ich habe dafür leider noch keine Lösung gefunden.

Gruß Ralf

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

rtend12
Mitglied
Dipl.-Ing. (FH) Maschinenbau / Konstrukteur


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

Beiträge: 436
Registriert: 21.07.2004

Catia V5 (R16SP5, B18SP5)
VB.Net 2003

erstellt am: 06. Sep. 2006 22: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 RoccoRalle 10 Unities + Antwort hilfreich

Hallo RoccoRalle,

du schreibst die Lösung ja schon selber, etwas VB dazu uns schon geht es.
Hier ein paar Tips:

Code:

For Each oOcc In oOccs

        If Right(oOcc.Definition.Document.FullFileName, 3) = "M8x30 A2.ipt" Then

            Call oOcc.Replace("M8x30 A4.ipt", True)
            Exit For
        End If

    Loop
Next
End Function


Wenn du noch rekursiv durch deine BG durchgehst, kannst du alle Schrauben ersetzen.

Gruß
Reinhard

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

RoccoRalle
Mitglied



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

Beiträge: 52
Registriert: 24.04.2006

erstellt am: 07. Sep. 2006 09:31    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

Danke für die schnelle Antwort,

ich werde es mal testen. Gilt das auch für Normteile welche in einer Schraubverbindung IV 11 verbaut wurden?

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