Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor .NET
  Austausch iAssembly in Zeichnung

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:  Austausch iAssembly in Zeichnung (800 mal gelesen)
rwabst
Mitglied



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

Beiträge: 37
Registriert: 05.05.2015

PRDS 2016 Ultimate
Vault Workgroup 2016

erstellt am: 30. Nov. 2015 09:25    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 zusammen,

sucher jetzt seit mehreren Tagen im Netz und kann mir leider keine Lösung zusammenbasteln.
Mein Problem ist, dass ich auf Grundlage eines erstellten Zeichnungsblattes einer iAssembly, alle Blätter mit den anderen iAssemblyMember machen möchte.
Das heißt, dass erste Blatt ist die Vorlage für die anderen Versionen.
Mittlerweile habe ich es so hinbekommen, dass gemäß Menge an Zeilen in der iAssembly neue kopierte Versionen des ersten Blattes aufgebaut werden.

Problem 1: die Versionen werden nicht aktiv gesetzt. Es ist immer das selbe Modell auf allen Blättern.

Problem 2: ich habe immer mein Vorlagenblatt und die Menge der Blätter/Zeilen. Also immer 1 zuviel. Ich verstehe zwar warum er das macht aber weiß nicht wie ich die erste Zeile exkludieren kann.

Aktuell sieht der entsprechende Teil so aus.

Code:

            If assem.IsiAssemblyMember = True Then 'Er erkennt das Member!
                Dim factory As iAssemblyFactory = assem.iAssemblyMember.ParentFactory

                Dim oDrawingDocument1 As DrawingDocument = g_ThisApplication.ActiveDocument

                Dim oSheet As Sheet = oDrawingDocument1.ActiveSheet
                Dim oSourceDocument As DrawingDocument = g_ThisApplication.Documents.Open(normidw, False)
                Dim oSourceTitleBlockDef1 As TitleBlockDefinition = oSourceDocument.TitleBlockDefinitions.Item(drw_var5) 'Schriftfeld für erstes Blatt
                Dim oSourceTitleBlockDef2 As TitleBlockDefinition = oSourceDocument.TitleBlockDefinitions.Item(drw_var6) 'Schriftfeld für Varianten
                factory.DefaultRow = factory.TableRows.Item(2)

                Dim row As iAssemblyTableRow
                Dim oDrawingDocument2 As DrawingDocument = g_ThisApplication.Documents.Add(DocumentTypeEnum.kDrawingDocumentObject, , False)
                Dim oNewTitleBlockDef As TitleBlockDefinition = oSourceTitleBlockDef2.CopyTo(oDrawingDocument2)
                oSheet.CopyTo(oDrawingDocument2)

                For Each row In factory.TableRows
                    oSheet = oDrawingDocument2.Sheets.Item(oDrawingDocument2.Sheets.Count)
                    oSheet.TitleBlock.Delete()
                    oSheet.AddTitleBlock(oNewTitleBlockDef)
                    oSheet.CopyTo(oDrawingDocument1)
                    oSheet.DrawingViews(1).ReferencedDocumentDescriptor.ReferencedFileDescriptor.ReplaceReference(factory.TableRows)
                Next

                oDrawingDocument2.Close(True)
                oDrawingDocument2 = Nothing

                oSourceDocument.Close(True)

                Dim firstsheet As Sheet = oDrawingDocument1.Sheets.Item(1)
                Call firstsheet.Activate()
            Else
                MsgBox("Das Modell dieser Zeichnung ist kein iAssembly und kann nicht verarbeitet werden!", MsgBoxStyle.OkOnly)
            End If


Ich hoffe Ihr könnt mir helfen?! 

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2015 Professional
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 01. Dez. 2015 16:10    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 rwabst 10 Unities + Antwort hilfreich

Hallo,

kann es sein, dass immer die letzte Version der iAssembly auf den Blättern ist?
Eine Ansicht auf einer .idw zeigt ja immer nur den aktuellen Stand der dargestellten Baugruppe. Solange du also die iAssembly nicht in allen Varianten speicherst und refernzierst, wird die dargestellte Baugruppe immer wieder geändert und am Ende hast du alle Blätter mit der gleichen Baugruppe.

Was genau du mit deiner zweiten Frage meinst verstehe ich leider nicht.

------------------
MFG

Chris

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

rwabst
Mitglied



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

Beiträge: 37
Registriert: 05.05.2015

PRDS 2016 Ultimate
Vault Workgroup 2016

erstellt am: 01. Dez. 2015 20:18    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


Drawing_001.jpg

 
Hey Chris,

erst einmal vielen Dank für deine Antwort!

Nein, nicht die letzte sondern die erste.

Aber davon ab, hier habe ich mittlerweile festgestellt, dass ich über einen anderen Programmteil leider keine nativen Kinder-Dateien erzeugt hatte, sondern eigenständige Baugruppen. In denen wiederrum auch ein Fehler sich von unten nach oben durchzog.

Jetzt ist die iAssembly soweit sauber und das neu Zuweisen der Member klappt auch je Blatt. 

Mit meinem zweiten Problem meinte ich;
Blatt mit Modell wird erstellt. Dann wird gesagt, mach für jede Zeile eine Kopie des Blattes.
Also Blatt1 + Anzahl Zeilen macht ein Blatt zuviel. Das hab ich noch nicht hinbekommen. Also ausgenommen Zeile1.

Aber ich bin schon ein wenig weiter gekommen.

Jedes mal wenn ich den Befehl starte, will Vault die Mutterdatei auschecken. Das Sternchen sagt mir dann auch, dass Inventor scheinbar etwas an der Datei ändert.

Kann es sein, dass beim Versuch die Member zu switchen jedes Mal in der Mutterdatei die Variante aktiv gesetzt wird?

Gibt es eine bessere Möglichkeit auf
Zeichnungsansicht, Register Modellzustand, Variante
zuzugreifen?

Mein Code kommt mir etwas unelegant vor?!

Code:

Dim replacefile As String = filedir + "\" + filename + "\" + row.MemberName + ".iam"
                    oSheet.DrawingViews(1).ReferencedDocumentDescriptor.ReferencedFileDescriptor.ReplaceReference(replacefile)

Zudem vermute ich(kann es mir nicht anders erklären) einen Fehler im Programm. Die geänderten Member auf den Blättern sehen optisch nicht richtig aus. Wenn ich aber ein Maß anziehe und abklicke, springt es auf die richtige Position was nichts mit dem dargestellten Modell zu tun hat.
Hab hierzu ein Bild angehangen.

Kennt jemand das Phänomen?

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2015 Professional
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 02. Dez. 2015 08:03    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 rwabst 10 Unities + Antwort hilfreich

Zu deinem Zeilen-Problem könntest du das hier mal versuchen.

Code:
          For row=2 to factory.TableRows.Count
                    oSheet = oDrawingDocument2.Sheets.Item(oDrawingDocument2.Sheets.Count)
                    oSheet.TitleBlock.Delete()
                    oSheet.AddTitleBlock(oNewTitleBlockDef)
                    oSheet.CopyTo(oDrawingDocument1)
                    oSheet.DrawingViews(1).ReferencedDocumentDescriptor.ReferencedFileDescriptor.ReplaceReference(factory.TableRows)
                Next

Zu der Frage, ob die Variante in der Mutterdatei aktiv geschalte wird: Ja.

Dein "uneleganter" Code ist in meinen Augen ganz normal.

Versuch mal ein oDrawingDocument.Update nach die Bearbeitung der Zeichnungsansicht zu setzen. Vielleicht behebt das schon dein Problem mit den falschen Ansichten.

------------------
MFG

Chris

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

rwabst
Mitglied



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

Beiträge: 37
Registriert: 05.05.2015

PRDS 2016 Ultimate
Vault Workgroup 2016

erstellt am: 02. Dez. 2015 08:20    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 Chris,

wenn ich deinen code übernehme bekomme ich für die Variable den Hinweis:
"Das Steuerungselement der For-Schleife darf nicht vom Typ "Inventor.iAssemblyTableRow" sein, ..."
Wie könnte ich damit umgehen? Die Variable ist so deklariert:
Dim row As iAssemblyTableRow

Bei (factory.TableRows) bekomme ich den Hinweis: "Beim Konvertieren von "Inventor.iAssemblyTableRows" in String ..."
Die Variable ist so deklariert:
Dim factory As iAssemblyFactory = assem.iAssemblyMember.ParentFactory


Mir fehlen bei diesen Meldungen die Kenntnisse diese zu umgehen/modifizieren ... .

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

Chris 31
Mitglied
Konstrukteur und Mädchen für alles


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

Beiträge: 575
Registriert: 23.04.2013

Inventor 2015 Professional
Windows 7 64 bit
16GB RAM
nVidia Quadro 600

erstellt am: 02. Dez. 2015 08: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 rwabst 10 Unities + Antwort hilfreich

Oh, sorry...

Code:

Dim i as Integer
For i=2 to factory.TableRows.Count
                    oSheet = oDrawingDocument2.Sheets.Item(oDrawingDocument2.Sheets.Count)
                    oSheet.TitleBlock.Delete()
                    oSheet.AddTitleBlock(oNewTitleBlockDef)
                    oSheet.CopyTo(oDrawingDocument1)
                    oSheet.DrawingViews(1).ReferencedDocumentDescriptor.ReferencedFileDescriptor.ReplaceReference(factory.TableRows)
row=row+1
                Next

------------------
MFG

Chris

[Diese Nachricht wurde von Chris 31 am 02. Dez. 2015 editiert.]

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

rwabst
Mitglied



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

Beiträge: 37
Registriert: 05.05.2015

PRDS 2016 Ultimate
Vault Workgroup 2016

erstellt am: 02. Dez. 2015 11:49    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

Stop!!!!!
Ich zitiere mich mal selber ....

Zitat:

 

Habe jetzt verschiedene Konstellationen ausprobiert allerdings kriege ich leider noch nicht das Problem (factory.TableRows) in den Griff.
Meldung: "Beim Konvertieren von "Inventor.iAssemblyTableRows" in String ..."

Die Variable row macht dann leider auch Schwierigkeiten.

Hättest Du noch einen alternativen Vorschlag?


Das Problem mit den nicht aktuellen Varianten hab ich dank Dir Chris in den Griff bekommen.
Wenn ich den Wechsel der Varianten zum Schluss der Schleife setze (wie Du es in deinem Beispiel bereits gemacht hast!) sind die Variante auch richtig!

Bleibt nur noch mein Wunsch nach dem Start ab Zeile 2.

[Diese Nachricht wurde von rwabst am 02. Dez. 2015 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