Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Schriftköpfe aktualisieren

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:  Schriftköpfe aktualisieren (2647 mal gelesen)
de-os
Mitglied
CAD-Admin


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

Beiträge: 34
Registriert: 15.02.2006

erstellt am: 18. Mai. 2007 11:22    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,
ich möchte gerne auf Knopfdruck (per VBA) die Schriftköpfe aktualisieren.
Das stelle ich mir so vor, dass in ein aktuell geöffnetes Dokument die Schriftköpfe aus einer Vorlagendatei hineinkopiert / bzw. diese aktualisiert werden.
Die Vorlagendatei liegt an einem bestimmten Ort auf dem Server.
Was ich nicht hinbekomme ist Folgendes:
Ich weiß nicht genau, wie ich im VBA Objekte einer Datei geladen bekomme, die nicht geöffnet ist.
Es wird doch bestimmt möglich sein, dass VBA bspw. einen Schriftkopf aus einer bestimmten Datei in den Speicher holt, die ich dann per VBA verarbeiten kann.
Wäre nett, wenn Ihr mir helfen könntet.

------------------
Mit freundlichem Glückauf

de-os

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

SEHER
Mitglied
Systemanalytiker


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

Beiträge: 1203
Registriert: 13.03.2001

Inventor 2 bis 2022
häufig wechselnder Rechnerverkehr

erstellt am: 18. Mai. 2007 13:44    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 de-os 10 Unities + Antwort hilfreich

Schon mal den Übertragungsassistenten für Zeichnungsressourcen ausprobiert?

Unter Programme/Autodesk/Inventor../Werkzeuge

------------------
Gruß
SEHER
www.inventor-tools.de

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

de-os
Mitglied
CAD-Admin


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

Beiträge: 34
Registriert: 15.02.2006

erstellt am: 21. Mai. 2007 09:04    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 Seher,
die Funktion ist mir zwar bekannt, ich weiß auch, dass sie funktioniert. Ich möchte allerdings dieses per VBA realisieren, da unsere User einfach nur einen Knopf drücken sollen.
Wäre nett, wenn mir jemand einen Tipp geben könnte, wie das funktioniert.

------------------
Mit freundlichem Glückauf

de-os

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: 21. Mai. 2007 12:15    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 de-os 10 Unities + Antwort hilfreich

1. aktuelle Datei ermitteln
dim odoc as drawingdocument
Set odoc = ThisApplication.ActiveDocument

2. die Datei, die das neue Schriftfeld enthält öffnen

dim newdoc as drawingdocument
Set newdoc = ThisApplication.Documents.Open(hier den Pfad, False)

3. Schriftfeld in Speicher holen:
Dim oTitleDef As TitleBlockDefinition
Set oTitleDef = oSymDoc.TitleBlockDefinitions(hier Name des Schriftfeldes)

4. Schriftfeld in aktulle Zeichnung kopieren:
Call oTitleDef.CopyTo(odoc, True)

Wenn das neue und das alte Schriftfeld den gleichen Namen haben, dann wird das alte durch das neue ersetzt.

Gruß
Reinhard

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

de-os
Mitglied
CAD-Admin


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

Beiträge: 34
Registriert: 15.02.2006

erstellt am: 21. Mai. 2007 12:21    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,
das war genau das, was ich meinte.
Ich werde das heute mal ausprobieren.
Vielen, vielen Dank.

------------------
Mit freundlichem Glückauf

de-os

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

de-os
Mitglied
CAD-Admin


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

Beiträge: 34
Registriert: 15.02.2006

AutoCAD Mechanical,
Inventor Professional,
Vault Manufacturing

erstellt am: 21. Mai. 2007 14: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

Wollte mich nur bedanken. Funktioniert perfekt.
Hier dann mein endgültiger Code:

Public Sub Alle_Schriftfelder_holen()
Dim oApp As Application
Set oApp = ThisApplication
Dim oDoc As Document
Set oDoc = oApp.ActiveDocument
Dim newDoc As Document
Set newDoc = oApp.Documents.Open("c:\temp1.idw", False)
Dim oTitleDef As TitleBlockDefinition
Dim iZahl As Integer
For iZahl = newDoc.TitleBlockDefinitions.Count To 1 Step -1
    Set oTitleDef = newDoc.TitleBlockDefinitions.Item(iZahl)
    Call oTitleDef.CopyTo(oDoc, True)
Next iZahl
End Sub

------------------
Mit freundlichem Glückauf

de-os

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

EKW
Mitglied
Dipl.-Ing. Maschinenbau & IWE|Entwicklung & Konstruktion von Baumaschinenwerkzeugen


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

Beiträge: 174
Registriert: 12.09.2011

erstellt am: 01. Apr. 2014 11:23    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 de-os 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von de-os:

Public Sub Alle_Schriftfelder_holen()
Dim oApp As Application
Set oApp = ThisApplication
Dim oDoc As Document
Set oDoc = oApp.ActiveDocument
Dim newDoc As Document
Set newDoc = oApp.Documents.Open("c:\temp1.idw", False)
Dim oTitleDef As TitleBlockDefinition
Dim iZahl As Integer
For iZahl = newDoc.TitleBlockDefinitions.Count To 1 Step -1
    Set oTitleDef = newDoc.TitleBlockDefinitions.Item(iZahl)
    Call oTitleDef.CopyTo(oDoc, True)
Next iZahl
End Sub

Funktioniert wirklich super!

Interessant wäre hier noch wie man eventuell noch bestehende/vorhandene Schriftköpfe, ausser den Neu eingefügten und ersetzten/überschriebenen/aktualsierten Schriftköpfen, löschen kann?

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

rkauskh
Moderator
Dipl.-Ing. (FH) Versorgungstechnik




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

Beiträge: 2166
Registriert: 15.11.2006

Windows 10 x64, AIP 2022

erstellt am: 01. Apr. 2014 20:46    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 de-os 10 Unities + Antwort hilfreich

Hallo

Du könntest in der Zielzeichnung vorab alle nicht verwendeten Schriftfelder löschen.

Code:
Public Sub Alle_ungenutzten_Schriftfelder_löschen()
Dim oApp As Application
Set oApp = ThisApplication
Dim oDoc As Document
Set oDoc = oApp.ActiveDocument

Dim oTitleDef As TitleBlockDefinition

For each  oTitleDef in oDoc.TitleBlockDefinitions
    If oTitleDef.InUse = False Then
        oTitleDef.Delete
    End If
Nex
End Sub


------------------
MfG
Ralf

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

EKW
Mitglied
Dipl.-Ing. Maschinenbau & IWE|Entwicklung & Konstruktion von Baumaschinenwerkzeugen


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

Beiträge: 174
Registriert: 12.09.2011

erstellt am: 02. Apr. 2014 11:50    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 de-os 10 Unities + Antwort hilfreich

Danke!

Das sieht vielversprechend aus!

EDIT:

Er bricht leider in der Zeile "If oTitleDef.InUse = False Then" (Kommentar False=False) ab wenn eines der Schriftfelder in einem Blatt vorkommt. Wird keines verwendet läuft das Programm durch (ist ja nicht im Sinne des Vorhabens).

Viele Grüße,

[Diese Nachricht wurde von EKW am 02. Apr. 2014 editiert.]

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

RolandD
Mitglied



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

Beiträge: 533
Registriert: 07.01.2005

i7-9700k
32GB DDR4-RAM
Nvidia RTX 2060
SSD 970 m.2
Win10-64 (21H2)
AIP 2020.3
Dell U3417W

erstellt am: 02. Apr. 2014 18: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 Nur für de-os 10 Unities + Antwort hilfreich

Hallo,

doppelte Negierung ??

--> Edit sagt: es muss IsReferenced heißen.
Dann läuft's (kann das DIN-Schriftfeld nicht gelöscht werden?)

funktioniert

Code:
If Not oTitleDef.IsReferenced Then
        oTitleDef.Delete
End If


------------------
Gruß Roland

[Diese Nachricht wurde von RolandD am 02. Apr. 2014 editiert.]

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



Ingenieur (m/w/d) Automatisierung
Menschen und Technologien zu verbinden, den Perfect Match für unsere Kunden zu gestalten, immer die richtigen Expert:innen für die jeweilige Herausforderung zu finden - das ist unser Anspruch bei FERCHAU und dafür suchen wir dich: als ambitionierte:n Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in den Technologiebereichen ...
Anzeige ansehenAutomatisierungstechnik
EKW
Mitglied
Dipl.-Ing. Maschinenbau & IWE|Entwicklung & Konstruktion von Baumaschinenwerkzeugen


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

Beiträge: 174
Registriert: 12.09.2011

erstellt am: 03. Apr. 2014 10:45    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 de-os 10 Unities + Antwort hilfreich

Vielen Dank Roland!

Das war die Lösung 

Da braucht man wirklich sehr gute Kenntnisse um da den Unterschied herauszufiltern 

Viele Grüße,

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