| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
| |
| Auf dem Weg zur digitalen Auftragsmappe. , ein Anwenderbericht
|
Autor
|
Thema: ILogic: Zeichnungsressourcen austauschen (6639 mal gelesen)
|
muellc Ehrenmitglied V.I.P. h.c. ICT Specialist
Beiträge: 3501 Registriert: 30.11.2006 Inventor 2017.4.12 64 bit Windows 10 Enterprise 64 bit 3DEXPERIENCE R2016x -------------------- HP Z-Book 15 G4 32 Gig Ram NVIDIA Quadro M2200 2x HP E243i
|
erstellt am: 10. Mai. 2012 09:25 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, kennt jemand von euch eine Möglichkeit die Zeichnungsressourcen über eine ILogic Funktion austauschen zu lassen? Hintergrund ist folgender. Durch PSP sind viele unserer Dateien Schreibgeschützt, so das man den Übertragungsassistenten für Zeichnungsressourcen nicht zum Austausch von Schriftfeld usw. in diesen Zeichnungen verwenden kann. Wenn wir allerdings eine ältere Datei kopieren muss das Schriftfeld auf jeden Fall ausgetauscht werden, da sich das Firmenlogo geändert hat. Im Moment erstellen wir in so einem Fall eine neue Zeichnung, kopieren händisch den ganzen Ordner Zeichnungsressourcen und lassen alle Symbole usw überschreiben. Ist natürlich immer eine nervioge Klickerei, vor allem wenn man einen ganzen Auftrag kopiert. Schön wäre jetzt eine Funktion, die zich die ressourcen aus der Vorlagendatei holt und automatisch alle Symbole überschreibt. ------------------ Gruß, Gandhi It's not a bug, it's a feature! CAD-RPG - Anleitungen IVNGWC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SEHER Mitglied Systemanalytiker
Beiträge: 1203 Registriert: 13.03.2001 Inventor 2 bis 2022 häufig wechselnder Rechnerverkehr
|
erstellt am: 10. Mai. 2012 10:49 <-- editieren / zitieren --> Unities abgeben: Nur für muellc
Hallo Gandhi, wir haben das mit vba bzw. mittlerweile .net gelöst. Ausschnitt aus der routine 'Austausch des Schriftfeldes Dim oNewDocument As DrawingDocument Set oNewDocument = ThisApplication.ActiveDocument If oNewDocument.ActiveSheet.TitleBlock.Definition.name = "CompassMitBez3" Then 'MsgBox oNewDocument.ActiveSheet.TitleBlock.Definition.name Else 'ThisApplication.SilentOperation = True ' versteckt arbeiten Dim oSourceDocument As DrawingDocument Set oSourceDocument = ThisApplication.Documents.Open("K:\STANDARD\Inventor2009\Templates.de\Inventor\DIN.idw") ' Get the new source title block definition. Dim oSourceTitleBlockDef As TitleBlockDefinition Set oSourceTitleBlockDef = oSourceDocument.ActiveSheet.TitleBlock.Definition ' Get the new title block definition. Dim oNewTitleBlockDef As TitleBlockDefinition Set oNewTitleBlockDef = oSourceTitleBlockDef.CopyTo(oNewDocument) oSourceDocument.Close 'ThisApplication.SilentOperation = False ' versteckt arbeiten ' Iterate through the sheets. Dim oSheet As Sheet For Each oSheet In oNewDocument.Sheets oSheet.Activate
oSheet.TitleBlock.Delete Call oSheet.AddTitleBlock(oNewTitleBlockDef) Next
------------------ Gruß SEHER www.inventor-tools.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
muellc Ehrenmitglied V.I.P. h.c. ICT Specialist
Beiträge: 3501 Registriert: 30.11.2006 Inventor 2017.4.12 64 bit Windows 10 Enterprise 64 bit 3DEXPERIENCE R2016x -------------------- HP Z-Book 15 G4 32 Gig Ram NVIDIA Quadro M2200 2x HP E243i
|
erstellt am: 10. Mai. 2012 10:58 <-- editieren / zitieren --> Unities abgeben:
|
SEHER Mitglied Systemanalytiker
Beiträge: 1203 Registriert: 13.03.2001 Inventor 2 bis 2022 häufig wechselnder Rechnerverkehr
|
erstellt am: 10. Mai. 2012 11:17 <-- editieren / zitieren --> Unities abgeben: Nur für muellc
Hallo Gandhi, die alte Defintion wird nicht rausgelöscht sondern ist noch unter den Ressourcen vorhanden. Bedingung ist ein anderer Name als der Vorgänger. Ich stell Dir mal was zusammen; muss aber das makro noch modifizieren weil wir damit auch noch in die CompassDB schreiben. ------------------ Gruß SEHER www.inventor-tools.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
muellc Ehrenmitglied V.I.P. h.c. ICT Specialist
Beiträge: 3501 Registriert: 30.11.2006 Inventor 2017.4.12 64 bit Windows 10 Enterprise 64 bit 3DEXPERIENCE R2016x -------------------- HP Z-Book 15 G4 32 Gig Ram NVIDIA Quadro M2200 2x HP E243i
|
erstellt am: 10. Mai. 2012 11:25 <-- editieren / zitieren --> Unities abgeben:
|
SEHER Mitglied Systemanalytiker
Beiträge: 1203 Registriert: 13.03.2001 Inventor 2 bis 2022 häufig wechselnder Rechnerverkehr
|
erstellt am: 10. Mai. 2012 11:44 <-- editieren / zitieren --> Unities abgeben: Nur für muellc
Probier es mal aus Sub SFeld()
If Not ThisApplication.ActiveDocument.DocumentType = kDrawingDocumentObject Then MsgBox "Start ist nur in der Ableitungsumgebung (IDW) möglich!!", vbOKOnly, "Error" Else ' Set a reference to the drawing document. ' This assumes a drawing document is active. Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument
'Austausch des Schriftfeldes Dim oNewDocument As DrawingDocument Set oNewDocument = ThisApplication.ActiveDocument If oNewDocument.ActiveSheet.TitleBlock.Definition.Name = "CompassMitBez3" Then 'MsgBox oNewDocument.ActiveSheet.TitleBlock.Definition.name Else 'ThisApplication.SilentOperation = True ' versteckt arbeiten
Dim oSourceDocument As DrawingDocument Set oSourceDocument = ThisApplication.Documents.Open("K:\STANDARD\Inventor2009\Templates.de\Inventor\DIN.idw") ' Get the new source title block definition. Dim oSourceTitleBlockDef As TitleBlockDefinition Set oSourceTitleBlockDef = oSourceDocument.ActiveSheet.TitleBlock.Definition ' Get the new title block definition. Dim oNewTitleBlockDef As TitleBlockDefinition Set oNewTitleBlockDef = oSourceTitleBlockDef.CopyTo(oNewDocument) oSourceDocument.Close 'ThisApplication.SilentOperation = False ' versteckt arbeiten ' Iterate through the sheets. Dim oSheet As Sheet For Each oSheet In oNewDocument.Sheets oSheet.Activate
oSheet.TitleBlock.Delete Call oSheet.AddTitleBlock(oNewTitleBlockDef) Next End If End If End Sub
------------------ Gruß SEHER www.inventor-tools.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
muellc Ehrenmitglied V.I.P. h.c. ICT Specialist
Beiträge: 3501 Registriert: 30.11.2006 Inventor 2017.4.12 64 bit Windows 10 Enterprise 64 bit 3DEXPERIENCE R2016x -------------------- HP Z-Book 15 G4 32 Gig Ram NVIDIA Quadro M2200 2x HP E243i
|
erstellt am: 11. Mai. 2012 06:33 <-- editieren / zitieren --> Unities abgeben:
Hallo, danke auf jeden Fall für deine Mühe, aber leider nicht ganz was ich suche. Zum einen beschränkt sich das Tool ja auf Schriftfeld und lässt die Symbole aussen vor (Klar mit einer Erweiterung könnte man auch die einzelnen Symbole erfassen), zum anderen legt das Makro eine Kopie vom Schriftfeld an, anstatt es einfach zu ersetzen.
------------------ Gruß, Gandhi It's not a bug, it's a feature! CAD-RPG - Anleitungen IVNGWC Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
SEHER Mitglied Systemanalytiker
Beiträge: 1203 Registriert: 13.03.2001 Inventor 2 bis 2022 häufig wechselnder Rechnerverkehr
|
erstellt am: 12. Mai. 2012 13:48 <-- editieren / zitieren --> Unities abgeben: Nur für muellc
Hallo, Zitat: eine Kopie vom Schriftfeld an, anstatt es einfach zu ersetzen.
das stimmt so nicht. Das Makro guckt ob das Schriftfeld CompassMitBez3 auf dem aktiven Blatt ist. Wenn nicht wird das Template geöffnet und CompassMitBez3 kopiert und in die Zeichnung eingefügt und aktiv gesetzt. Zu deinem Problem: Erfasse mit SQL welche Dateien den status 00002 oder 00003 haben und geb Sie als Batchbefehlszeile zum Schreibschutzsetzen raus. Speichere dies in *.bat. hole überall Schreibschutz raus. Aktiviere Übertragungsassistenten für Zeichnungsressourcen. Anschließend läßt Du *.bat drüber laufen. Fertig. ------------------ Gruß SEHER www.inventor-tools.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Michael Sup Mitglied
Beiträge: 1 Registriert: 18.02.2019
|
erstellt am: 18. Feb. 2019 17:30 <-- editieren / zitieren --> Unities abgeben: Nur für muellc
Hallo SEHER Das ist fast ganz genau wonach ich suche Hab nur ein kleines Problem mit der letzten Zeile: Call oSheet.AddTitleBlock(oNewTitleBlockDef) Da krieg ich den Fehler: Run-time error '5': Invalid procedure call or argument Ich arbeite mit Inventor 2016. Beste Grüsse Michael Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |