| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: iLogic: Parametrisierte Baugruppenvarianten abspeichern (5209 mal gelesen)
|
Kosta1993 Mitglied Student
Beiträge: 3 Registriert: 22.04.2015
|
erstellt am: 22. Apr. 2015 14:19 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich bin neu hier und zunächst einmal möchte ich mich für die großartige Arbeit der Forummitglieder hier bedanken. Ihr habt mir oft bei meinen Problemstellungen weitergeholfen. Ich habe ein kleines Problem, bei dem ich nicht weiterkomme und auf euere Hilfe hoffe. Ich habe mit Inventor eine parametrisierte Baugruppe erstellt, bei welcher ich die Maße der Baugruppe ändern kann. Diese Baugruppe steuere ich über ein iLogic Formular. Mein Problem ist jetzt folgendes: Ich muss meine Baugruppe in den verschiedensten Varianten abspeichern können. Sprich: Wenn ich über das Formular Maße ändere, muss ich die geänderte Datei seperat und unabhängig abspeichern können um anschließend Zeichnungsableitungen der verschiedenen Modelle herstellen zu können. Bisher hat dies nicht geklappt, da die abgespeicherte Baugruppe ja immernoch mit dem Mastermodell und den Einzelteilen verknüpft ist. Ich hoffe ihr könnt mir bei diesem Problem weiterhelfen und mir erklären wie ich meine Baugruppe mit geänderten Maßen UNABHÄNGIG vom Mastermodell abspeichern kann. Lieben Gruß, Kosta1993 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 22. Apr. 2015 14:30 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Hallo Ich habe so etwas ähnliches wie gemacht, allerding nicht in iLogic sonder in vb .net . Ich habe eine Baugruppe (Parametrisch) und eine Zeichnung erstellt. Über eine Eingabemaske kann man die Größen für das Modell wählen und Informationene der Zeichnung eingeben. Hat man das gemacht kopiert mein Code den gesamten Ordner mit Modellen, Baugruppe und Zeichnung und ersetzt die Referenz der Zeichnung. Das du die Modelle und die entsprechende Baugruppe kopierst ist soweit ich weiß die einzige möglichkeit eine unabhängige Baugruppe zu erhalten. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kosta1993 Mitglied Student
Beiträge: 3 Registriert: 22.04.2015
|
erstellt am: 22. Apr. 2015 14:44 <-- editieren / zitieren --> Unities abgeben:
Hi erstmal vielen Dank für deine schnelle Antwort! Ja über die Lösung es per Copy&Paste zu machen habe ich auch bereits nachgedacht. Ich finde das jedoch ziemlich einfallslos und "unschön". Schöner wäre es, wenn Inventor selbst das für dich übernehmen könnte. Sprich: Man ädert seine Werte in dem Formular und beim abspeichern erhält man die Option eine Kopie des gesamten Ordners (natürlich mit anderen Namen) anzulegen. Das wäre meiner Meinung nach das Optimum und eine solche Lösung klingt nicht all zu kompliziert, als das es so etwas im Inventor nicht geben könne. Ich denke es gibt einen ähnlichen Lösungsweg wie oben beschrieben nur habe ich ihn bisher nicht gefunden Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADboogie Mitglied Dipl.-Ing. Konstrukteur für Luftführungssysteme
Beiträge: 241 Registriert: 05.08.2009 Intel Xeon@ 3,07 GHz NVIDIA Quadro 2000 Windows 7, SP1, 64Bit Inventor 2012 (SP2), 2014 (SP2)
|
erstellt am: 22. Apr. 2015 15:42 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Hallo, ich hatte (und habe immer noch) das gleiche Problem. Mein Lösungsansatz (der leider noch nicht 100% funktioniert) ist: 1. aus der Baugruppe werden Regeln aufgerufen, die in den einzelnen Bauteilen stehen 2. diese Regeln fragen einen neuen Namen ab und speichern das jeweilige Bauteil unter diesem neuen Namen. Zu 1. den "speichern unter" Befehl kann ich in der Baugruppenregel nicht auf Bauteile anwenden (warum auch immer?) Aber: es bleibt spannend! ------------------ Gruß aus Aachen, Walter *** Man kann nicht alles gleichzeitig machen, aber man kann alles gleichzeitig sein lassen *** Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 22. Apr. 2015 15:45 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Ja genau aus dem Grund weil es kein Ansatz gibt den ich kenn und weil es unschön ist es von hand zu kopieren habe ich mir das ganze in vb .net selbst geschrieben. Ist allerdings etwas aufwendiger, da man erst programmieren lernen muss bzw die grundkenntnisse erlernen muss. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kosta1993 Mitglied Student
Beiträge: 3 Registriert: 22.04.2015
|
erstellt am: 22. Apr. 2015 17:49 <-- editieren / zitieren --> Unities abgeben:
|
Canadabear Mitglied Konstrukteur
Beiträge: 921 Registriert: 30.06.2010 Inventor 2020 SolidWorks 2020
|
erstellt am: 22. Apr. 2015 18:56 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Zitat: Original erstellt von Kosta1993: Könntest du denn vielleicht deinen Code einmal hochladen? Damit ich mir den anschauen kann und versuchen kann nachzuvollziehen?
Hallo mir wuerde der Code auch sehr interessieren denn ich bin dabei ein solches Clone-programm zu schreiben. Gruss Ray ------------------ Barbarus hic ego sum, quia non intellegor ulli! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 22. Apr. 2015 18:59 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
|
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 23. Apr. 2015 10:45 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Also Leute ich habe jetzt das Programm für euch. Ichhabe es noch etwas geändert, da bei mir automatisch ein Pfad ausgewählt wir. einrichten: -Datei herunterladen + entpacken -Datei "Ordner Kopieren.exe" in eine festen ordner ablegen und Pfad kopieren -in der Masterbaugruppe eine neue iLogicRegel anlegen -Dort einfügen: ThisDoc.Launch("Pfad\Ordner Kopieren.exe") Nutzen: -Regel ausführen -Ordner öffnen in den die Dateien gespeichert werden sollen -speichern klicken -Masterbaugruppe schliesen -Neue Baugruppe öffen -fertig Vorraussetzung: Masterbaugruppe und alle dazugehörigen Bauteile müssen in einem Ordner liegen sonst sollte nichts weiter drin sein
Bei fragen oder änderungswünschen meldet euch... MfG Felix
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 23. Apr. 2015 11:03 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Ach ja hier ist noch der Code, damit ihr auch wisst was ihr da ausführt: Imports Inventor Module kopieren Sub main() Dim ThisApplication As Inventor.Application Dim oDoc As Inventor.Document ThisApplication = GetObject(, "Inventor.Application") oDoc = ThisApplication.ActiveDocument
Dim ÖffnenPfad As String Dim SpeicherPfad As String ÖffnenPfad = Mid(oDoc.FullFileName, 1, InStrRev(oDoc.FullFileName, "\") - 1) Dim FileDialog1 As New Windows.Forms.SaveFileDialog() FileDialog1.Title = "Dateien speichern unter" FileDialog1.FileName = "egal" FileDialog1.InitialDirectory = ÖffnenPfad FileDialog1.AddExtension = True FileDialog1.ShowDialog()
If FileDialog1.FileName = "egal.bla" Then Exit Sub Else SpeicherPfad = Mid(FileDialog1.FileName, 1, InStrRev(FileDialog1.FileName, "\") - 1) My.Computer.FileSystem.CopyDirectory(ÖffnenPfad, SpeicherPfad, True) End If End Sub End Module für anregungen und/oder Fragen bin ich immer offen.
MfG Felix Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Canadabear Mitglied Konstrukteur
Beiträge: 921 Registriert: 30.06.2010 Inventor 2020 SolidWorks 2020
|
erstellt am: 23. Apr. 2015 11:30 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Danke schon mal fuer das Programm, werde es mal ausprobieren. Wuerdest du auch den quellcode zur verfuegung stellen? Denn wir haben hier ein sehr verzweigtes Dateisystem und es werden dann viele Teile wiederverwendet und andere nicht. Ausserdem haben wir Zeichnungen die mehrere Teile enthalten. Schoenen Gruss Ray ------------------ Barbarus hic ego sum, quia non intellegor ulli! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 23. Apr. 2015 11:34 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
|
loop29 Mitglied
Beiträge: 903 Registriert: 15.02.2004 Factory Design Suite Ultimate 2012, Dell T3600, 16 Gbyte, Quadro 4000 Dell M6800, 32 Gbyte, Quadro K5100M
|
erstellt am: 23. Apr. 2015 11:43 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Hi, so ein Tool hab ich mir auch mal gestrickt für iLogic Baugruppen. Da gibt´s doch ne ganze Menge die man dabei beachten muss. Gerade bei iLogic gesteuerten Baugruppen muss man darauf achten, dass die Exemplarnamen der Komponenten beim Kopieren nicht geändert werden. Zumindest wenn man aus der Baugruppe Parameter in die einzelnen Komponenten runterreicht. Dann z.B. ob es noch abgeleitete Komponenten in der Baugruppe gibt, die unterdrückte Verknüpfungen haben zu anderen Bauteilen. Wenn die Verknüpfungen unterdrückt sind kommen die über eine Aufzählung bei AllReferencedDocuments nicht mit. Falls Interesse besteht gebe ich gerne Unterstützung. Grüße Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Canadabear Mitglied Konstrukteur
Beiträge: 921 Registriert: 30.06.2010 Inventor 2020 SolidWorks 2020
|
erstellt am: 23. Apr. 2015 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Zitat: Original erstellt von Fiedel93felix: den Quellcode habe ich oben doch gepostet...Aber als anmerkung: Wenn bereits Zeichnungen ertsellt worden die mit im Ordner sind kann es sein das die Modellreferenzen erneuert werden müssen.
Ich meinte ja von der .exe Datei ------------------ Barbarus hic ego sum, quia non intellegor ulli! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 23. Apr. 2015 11:51 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
|
Canadabear Mitglied Konstrukteur
Beiträge: 921 Registriert: 30.06.2010 Inventor 2020 SolidWorks 2020
|
erstellt am: 23. Apr. 2015 11:53 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Zitat: Original erstellt von Fiedel93felix: Naja die .exe für den Code aus den ich oben gepostet habe sonst macht die nichts weiter...
Ok, ich hatte gedacht dein Programm stellt die neuen Verknuepfungen zwischen den neuen Dateien auch wieder her. Sorry hatte ich dann falsch verstanden. Gruss Ray ------------------ Barbarus hic ego sum, quia non intellegor ulli! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 23. Apr. 2015 11:56 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
|
Canadabear Mitglied Konstrukteur
Beiträge: 921 Registriert: 30.06.2010 Inventor 2020 SolidWorks 2020
|
erstellt am: 23. Apr. 2015 12:04 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Ja genau, die referenzen in den Baugruppen und den Zeichnungen. Hatte schon eine Version geschrieben aben die war noch nicht stabiel genug und konnte nur Zeichnungen finden mit dem gleichen Dateinamen wie die Teile oder Baugruppen. Jetzt habe ich die Firma gewechselt und dort herrscht die unart das die Zeichnungen ganz andere Dateinamen haben wiedie Teile und auch noch mehrere Teile beinhalten. Also muss ich wohl alles umschreiben. ------------------ Barbarus hic ego sum, quia non intellegor ulli! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 23. Apr. 2015 12:15 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Also erstmal schlechte nachricht: Ich kann die Referenz nur dann automatisch ändern wenn die Zeichnung den Selben Namen hat wie die Baugruppe. Also ich bin mir sicher das auch geht wenn die beiden nicht den selben namen haben aber ich hätte jetzt auf die schnelle keine Ahnung wie. Das ist mein Code zum ändern der Referenz: Dim oDoc As Inventor.Document Dim Pfad As String oDoc = ThisApplication.ActiveDocument Pfad = Left(oDoc.FullDocumentName, Len(oDoc.FullDocumentName) - 3) 'Prüfen ob Zeichnung vorhanden If My.Computer.FileSystem.FileExists(Pfad & "idw") Then ThisApplication.SilentOperation = True ThisApplication.Documents.Open(Pfad & "idw") ThisApplication.SilentOperation = False Dim oDrawDoc As Inventor.DrawingDocument oDrawDoc = ThisApplication.ActiveDocument Pfad = oDrawDoc.FullDocumentName Dim oFile As File oFile = oDrawDoc.File Dim oFD As FileDescriptor For i = 1 To 10 Try oFD = oFile.ReferencedFileDescriptors.Item(i) If oFD.FullFileName = Ausgangspfad & "\AN.iam" Then Call oFD.ReplaceReference(Left(Pfad, Len(Pfad) - 3) & "iam") Call Create_prop(oDrawDoc, "Status", "Zeichnung") Exit Sub End If Catch ex As Exception End Try Next ThisApplication.ActiveDocument.Update() Der Code wird allerdings in der Baugruppe ausgelöst und öffnet dann die Zeichnung und ändert danach die Referenz. Wie soll den dein Code Ausgelöst werden, also wie läuft dein Bearbeitungsweise ab? Denn bei mir ist es so: -Werte eingeben -Ordner wird kopiert und Baugruppe und Zeichnung werden umbenannt -Baugruppe öffnet und Werte werden eingelesen -BG speichern und Button betätigen -Zeichnung öffnet und Referenz wird ersetzt -Zeichnung passt sich automatisch an -fertig Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Canadabear Mitglied Konstrukteur
Beiträge: 921 Registriert: 30.06.2010 Inventor 2020 SolidWorks 2020
|
erstellt am: 23. Apr. 2015 12:23 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Ich hatte es so programmiert das ich zuerst eine Liste in Excel erstellt habe in der ich dann jeder Datei einen neuen namen zuweisen konnte. Dann lief ein 2ter Teil des Programms das dann alle Dateien kopierte und dann die Referenzen aktualisierte. Sollte eigendlich auch bei Zeichnungen mit beliebigen Namen funktionieren. ------------------ Barbarus hic ego sum, quia non intellegor ulli! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Fiedel93felix Mitglied Konstrukteur
Beiträge: 482 Registriert: 19.02.2014 Autodesk Inventor 2017 Microsoft Visual Basic 2010
|
erstellt am: 23. Apr. 2015 12:26 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Also werden die Bauteile Baugruppen und Zeicnhungen über dein Programm umbenannt? Wenn das so ist musst du nur die Namen irgendwo hintelegn (wie du es gemacht hast) und dann beim Referenz ändern auf das abgelegt zugreifen.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Canadabear Mitglied Konstrukteur
Beiträge: 921 Registriert: 30.06.2010 Inventor 2020 SolidWorks 2020
|
erstellt am: 23. Apr. 2015 12:32 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Genau, das erledige ich in der Excel-Datei. Das ganze lief zum Teil schon ganz gut, nur jetzt das Problem mit der schlechten Dateistruktur und hinzu kommt noch das Migrationsproblem. ------------------ Barbarus hic ego sum, quia non intellegor ulli! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
loop29 Mitglied
Beiträge: 903 Registriert: 15.02.2004 Factory Design Suite Ultimate 2012, Dell T3600, 16 Gbyte, Quadro 4000 Dell M6800, 32 Gbyte, Quadro K5100M
|
erstellt am: 23. Apr. 2015 13:28 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Wie wäre es denn über den DocumentsEnumerator zu gehen und alle referenzierten Dokumente mit SaveAs neu zu speichern? Vorteil dabei ist das die Referenzen innerhalb der Baugruppe automatisch aktualisiert werden. Dim Path As String = ThisDoc.WorkspacePath & "\" Dim oldPath As String = ThisDoc.Path & "\" 'MessageBox.Show(Path, "Workspace-Pfad") 'MessageBox.Show(oldPath, "alter Workspace-Pfad") oInvDoc = ThisDoc.Document Dim refDocs As DocumentsEnumerator = oInvDoc.AllReferencedDocuments Dim refDoc As Document For Each refDoc In refDocs Dim oldDisplayName As String = refDoc.DisplayName 'read filename with file extension 'MessageBox.Show(refDoc.FullFileName) Dim Filename_Ext As String = refDoc.FullFileName.Substring(oldPath.length) 'MessageBox.Show(Filename_Ext) 'get the extension of the file Dim strFileExtension As String = Filename_Ext.Substring(Filename_Ext.Length-4,4) 'get the filename without extension from the filename with extension Dim Filename As String = Filename_Ext.substring(0,Filename_Ext.Length-4) 'detect If document Is Assembly And save As Assembly If refDoc.DocumentType = 12291 Then Do 'define new Name for copy of the referenced document NewFileName = InputBox("Geben Sie den neuen Namen für die Baugruppe " & Filename_Ext &" ein!","Neuer Dateiname", Filename) 'check For blank filename And Set To DisplayName If NewFileName = "" Then NewFileName = Filename End If 'check For extension In name And remove If there If NewFileName.EndsWith(".iam") = True Then NewFileName = NewFileName.Substring(0,NewFileName.length-4) 'MessageBox.Show(NewFileName) End If Loop Until FilenameExists(Path, NewFileName & ".iam") = False refDoc.SaveAs(Path & NewFileName & ".iam",False) refDoc.DisplayName = oldDisplayName Call CopyDrawing(Path, oldPath, Filename_Ext, NewFileName) Else Da fehlt jetzt noch die Abfrage für die CC-Teile und das Kopieren der Zeichnung. Grüße [Diese Nachricht wurde von loop29 am 23. Apr. 2015 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Canadabear Mitglied Konstrukteur
Beiträge: 921 Registriert: 30.06.2010 Inventor 2020 SolidWorks 2020
|
erstellt am: 23. Apr. 2015 14:25 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
|
loop29 Mitglied
Beiträge: 903 Registriert: 15.02.2004 Factory Design Suite Ultimate 2012, Dell T3600, 16 Gbyte, Quadro 4000 Dell M6800, 32 Gbyte, Quadro K5100M
|
erstellt am: 23. Apr. 2015 15:08 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Stellt glaube ich kein Problem dar, da mehrfach verbaute Bauteile trotzdem nur eine Referenz haben. Bin mir aber nicht 100% sicher. Wäre mir damals aber sicher aufgefallen. Hier ist der Rest vom Code: Else 'initialize object for PartComponentDefinition to access property if part is member of content center Dim oPartCompDef As PartComponentDefinition oPartCompDef = refDoc.ComponentDefinition If Not oPartCompDef.IsContentMember Then Do NewFileName = InputBox("Geben Sie den neuen Namen für das Bauteil " & Filename &" ein!","Neuer Dateiname", Filename) 'check For blank filename If NewFileName = "" Then NewFileName = Filename End If 'check For extension In name And remove If there If NewFileName.EndsWith(".ipt") = True Then NewFileName = NewFileName.Substring(0,NewFileName.length-4) 'MessageBox.Show(NewFileName) End If Loop Until FilenameExists(Path, NewFileName & ".ipt") = False refDoc.SaveAs(Path & NewFileName & ".ipt",False) refDoc.DisplayName = oldDisplayName Call CopyDrawing(Path, oldPath, Filename_Ext, NewFileName) Else 'MessageBox.Show("Die Komponente " & refDoc.DisplayName & "ist ein Content Center Part und wird nicht kopiert !") End If End If Next Dim oldAssemblyName As String Do NewAssemblyName = InputBox("Wie lautet der neue Name für die Haupt-Baugruppe?", "Neuer Baugruppenname", ThisDoc.FileName(False)) If NewAssemblyName = "" Then NewAssemblyName = ThisDoc.FileName(False) 'ThisDoc.Document.SaveAs(Path & NewAssemblyName & ".iam",False) 'ThisDoc.Document.DisplayName = oldAssDisplayName 'Call CopyDrawing(Path, oldPath, oldAssemblyName, NewAssemblyName) End If If NewAssemblyName.EndsWith(".iam") = True Then NewAssemblyName = NewAssemblyName.Substring(0,NewAssemblyName.length-4) End If oldAssemblyName = ThisDoc.FileName(True) Loop Until FileNameExists (Path, NewAssemblyName & ".iam") = False ThisDoc.Document.SaveAs(Path & NewAssemblyName & ".iam",False) 'MessageBox.Show(oldAssemblyName &" , " & NewAssemblyName) Call CopyDrawing(Path, oldPath, oldAssemblyName, NewAssemblyName) 'MessageBox.Show("Main Assembly kopiert") End Sub Private Sub CopyDrawing (ByVal NewPath As String, ByVal oldPath As String, ByVal oldName As String, ByVal NewName As String) Dim oDestinationDoc As DrawingDocument Dim strFileExtension As String = oldName.substring(oldName.Length-4,4) oldName = oldName.substring(0,oldName.Length-4) Dim sFileName As String = oldPath & oldname & ".idw" 'MessageBox.Show(sFileName, "zu suchende Zeichnung für " & oldName) Try If System.IO.File.Exists(sFileName) Then oDestinationDoc = ThisApplication.Documents.Open(sFileName) oDestinationDoc.SaveAs(NewPath & NewName & ".idw",False) Dim oDocDescriptor As DocumentDescriptor oDocDescriptor = oDestinationDoc.ReferencedDocumentDescriptors.Item(1) Dim oFileDescriptor As FileDescriptor oFileDescriptor = oDocDescriptor.ReferencedFileDescriptor oFileDescriptor.ReplaceReference(NewPath & NewName & strFileExtension) oDestinationDoc.Update() oDestinationDoc.Close End If Catch oDestinationDoc.Close MessageBox.Show("error") End Try End Sub Private Function FilenameExists (ByVal NewPath As String, ByVal NewName As String) As Boolean Dim retry As Boolean Dim sFileName As String = NewPath & NewName ' NewName must have extension of the file (ipt, iam) If System.IO.File.Exists(sFileName) Then retry = True MessageBox.Show("Der Dateiname existiert schon " & NewName &", bitte geben Sie einen neuen Dateinamen ein!", Dateiname) Else retry = False End If Return retry End Function
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OibelTroibel Mitglied Konstrukteur
Beiträge: 602 Registriert: 18.04.2014 ACAD/Inventor 2018-21
|
erstellt am: 05. Apr. 2016 08:09 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Hallo loop29 Ich bin auf der Suche nach einer Möglichkeit Baugruppen, bei der die einzelnen Bauteile mit einer "Master".ipt verknüpft sind zu kopieren um eine neue Variante zu erhalten, ohne die Ursprungsbaugruppe zu überschreiben. Mit dem Konstruktionsassistenten funktioniert das soweit ganz gut. Gerne möchte ich aber die Baugruppe im Template-Ordner abspeichern und beim neu erstellen über eine Eingabemaske die Parameter ändern und dann über dein Programm die Baugruppe kopieren. Meine Frage, ist es über dein Programm möglich die referenzierte Master.ipt auch zu kopieren bzw mit der Kopie neu zu verknüpfen wie das im Konstruktionsassistenten der Fall ist? Beste Grüsse Raphael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OibelTroibel Mitglied Konstrukteur
Beiträge: 602 Registriert: 18.04.2014 ACAD/Inventor 2018-21
|
erstellt am: 06. Apr. 2016 08:00 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
|
SmilingDevil Mitglied Dipl. Ing.
Beiträge: 460 Registriert: 02.09.2005 Autodesk Inventor 2018
|
erstellt am: 08. Apr. 2016 13:38 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
...ich versteh die Notwendigkeit des Scripts ehrlich gesagt nicht ganz.. ich kann doch über iAssempbly die verschiedensten Varianten machen, und diese dann eben auch voneinander völlig unabhängig Ableiten und Bemaßen (zumal Inventor sehr schön die Varianten in einem Unterordner ablegt) Gruß, Axel ------------------ In übereinstimmung mit der Prophezeiung! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
OibelTroibel Mitglied Konstrukteur
Beiträge: 602 Registriert: 18.04.2014 ACAD/Inventor 2018-21
|
erstellt am: 11. Apr. 2016 08:24 <-- editieren / zitieren --> Unities abgeben: Nur für Kosta1993
Hallo Axel iAssyembly ist eher ein Werkzeug zum vordefinierte Varianten zu erfassen und eignet sich meiner Meinung nach weniger für das erstellen von sich immer ändernder Mastermodelle. Aber wie immer lass ich mich gerne belehren Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |