iLogic def. Schriftfeld aus Vorlage in akt. Zeichnung kopieren Inventor 2019

iLogic def. Schriftfeld aus Vorlage in akt. Zeichnung kopieren Inventor 2019

ralf.rosenburg
Enthusiast Enthusiast
5.176Aufrufe
16Antworten
Nachricht 1 von 17

iLogic def. Schriftfeld aus Vorlage in akt. Zeichnung kopieren Inventor 2019

ralf.rosenburg
Enthusiast
Enthusiast

Hallo, vielleicht kann mir jemand helfen

Ich benötige eine ilogic Regel, welche aus einer Vorlagenzeichnung ein bestimmtes Schriftfeld in meine aktuelle Zeichnung kopiert.

Also ich habe mehrere Kunden und für jeden Kunden ein spezifisches Schriftfeld. Nun möchte ich in meinen Zeichnungen nur das Schriftfeld des jeweiligen Kunden haben.

Meine Idee ist es nun eine Vorlagendatei (IDW) zu haben in der alle Schriftfelder gespeichert sind. Z.B. Kunde A, B, C...

in meiner aktuellen Zeichnung habe ich zuerst mal kein Schriftfeld. Über eine Abfrage möchte ich nun z.B. Kunde A bestimmen. Jetzt brauche ich eine Routine, welche das Schriftfeld von Kunde A in der Vorlagendatei sucht und in meine aktuelle Zeichnung einfügt.

Den Zugriff auf die Vorlagendatei bekomme ich durch

Dim oSourceDocument As DrawingDocument

oSourceDocument = ThisApplication.Documents.open("mein Pfad und Dateinamen") hin

Den Zugriff auf das Schriftfeld von Kunde A will mir aber einfach nicht gelingen.

 

Bin für jede Hilfe dankbar

0 „Gefällt mir“-Angaben
Akzeptierte Lösungen (2)
5.177Aufrufe
16Antworten
Antworten (16)
Nachricht 2 von 17

Martin-Winkler-Consulting
Advisor
Advisor

@ralf.rosenburg 

Ich denke das geht auch ohne iLogic...

 

1. Möglichkeit: Du erstellt eine Vorlage in der alle Schriftfelder deiner Kunden enthalten sind. Man kann beliebig viele Schriftfelder in einer Vorlage haben. Kombiniert zu Arbeitsblattformaten kannst du dann schnell das passende Blatt mit entsprechendem Kundenschriftfeld einfügen.

 

2. Möglichkeit: Für jeden Kunden eine eigene Vorlage erstellen und die dann entsprechend verwenden. (So mache ich das).

Hilft dir das weiter?

Gruß Martin

Martin Winkler
CAD Developer
Did you find this post helpful? Feel free to like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.


EESignature

Nachricht 3 von 17

ralf.rosenburg
Enthusiast
Enthusiast

Hallo Martin, vielen Dank für deine Antwort.

natürlich geht das so wie du das machst ohne iLogic. Momentan habe ich alle Schriftfelder (35 Stück) in der Vorlagedatei. Das will ich nun ja nicht haben. 35 einzelne Vorlagedateien will ich auch nicht haben. Ich habe schon sehr viel in iLogic programmiert und finde diese Schnittstelle toll. Komme bei meinen Problemen aber immer nur durch die einschlägigen Foren weiter. Die Online Hilfe von Autodesk ist zu allgemein gehalten und vernünftige Beispiele fehlen.  Bei diesem Problem finde ich aber nur wenige Programmbeispiele.

Im Beispiel unten wurde das Problem schon angegangen. Dort wird aber nur das Schriftfeld des aktuellen Blatts der Vorlagendatei kopiert. Diese Variante würde grundsätzlich funktionieren. Da brauche ich aber auch 35 Vorlagendateien. Das geht sicherlich eleganter.

Viele Grüße Ralf

Grundsätzlich gibt es ein Snippet im iLogic. und zwar This Drawing.ResourceFileName = "Pfad\Dateiname"

Diese Datei kann man als Quelle für Schriftfelder und Rahmen angeben.

Ich krieg's halt nicht programmiert.

Eigentlich müsste das ganz elegant mit einem kleinen Programm zu lösen sein.

0 „Gefällt mir“-Angaben
Nachricht 4 von 17

ralf.rosenburg
Enthusiast
Enthusiast
0 „Gefällt mir“-Angaben
Nachricht 5 von 17

@ralf.rosenburg 

Kannst du die iLogic Regel die du bisher erstellt hast bitte hier mal posten.

Martin Winkler
CAD Developer
Did you find this post helpful? Feel free to like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.


EESignature

0 „Gefällt mir“-Angaben
Nachricht 6 von 17

Juergen_Wagner
Advisor
Advisor

Es gibt dutzende Code Beispiele zum Thema

https://www.google.com/search?q=inventor+api+copy+title+block

Du musst dich beim Suchen von ilogic lösen und api einfügen (wobei ich wetten würde  daß es bei der Suche nach ilogic copy title Block auch Treffer gibt). Findest Du VBA Code machst Du so ilogic Code daraus. https://inventorfaq.blogspot.com/2017/04/vba-code-in-ilogic-code-umwandeln.html

 

0 „Gefällt mir“-Angaben
Nachricht 7 von 17

ralf.rosenburg
Enthusiast
Enthusiast

Hallo Jürgen,

vielen Dank für deine Antwort. Ich werde gleich deine Links anschauen.

@Anonymous unten mein Programm bis jetzt.

Sub Main()
If Not ThisApplication.ActiveDocument.DocumentType = kDrawingDocumentObject Then
        MessageBox.Show("Start ist nur in der Ableitungsumgebung (IDW) möglich!!", "falsches Dokument")

   Else
  
  ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    oDrawDoc = ThisApplication.ActiveDocument

'Austausch des Schriftfeldes
Dim oNewDocument As DrawingDocument
    oNewDocument = ThisApplication.ActiveDocument

	ThisApplication.SilentOperation = True ' versteckt arbeiten

    Dim oSourceDocument As DrawingDocument
    oSourceDocument = ThisApplication.Documents.Open("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\Schriftfelder ib-Rosenburg.idw")

    ' Get the new source title block definition.
    Dim oSourceTitleBlockDef As TitleBlockDefinition
	
	oSheet = oSourceDocument.Sheet("Sheet:2") '--> das funktioniert nicht, ich bekomme den Zugriff auf Blatt 2 der Quelldatei nicht hin
	
	oSourceTitleBlockDef = oSourceDocument.ActiveSheet.TitleBlock.Definition '--> das funktioniert, es wird das Schriftfeld des aktiven Blattes der Quelldate kopiert

    ' Get the new title block definition.
    Dim oNewTitleBlockDef As TitleBlockDefinition
    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 Sub
0 „Gefällt mir“-Angaben
Nachricht 8 von 17

Akzeptierte Lösung

@ralf.rosenburg 

So funktioniert das bei mir jetzt.

Bitte Anmerkungen beachten!

Sub Main()
If Not ThisApplication.ActiveDocument.DocumentType = kDrawingDocumentObject Then
        MessageBox.Show("Start ist nur in der Ableitungsumgebung (IDW) möglich!!", "falsches Dokument")

   Else
  
  ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    oDrawDoc = ThisApplication.ActiveDocument

'Austausch des Schriftfeldes
Dim oNewDocument As DrawingDocument
    oNewDocument = ThisApplication.ActiveDocument

	ThisApplication.SilentOperation = True ' versteckt arbeiten

    Dim oSourceDocument As DrawingDocument
    oSourceDocument = ThisApplication.Documents.Open("C:\3D-CAD-SERVICE_test.idw")

    ' Get the new source title block definition.
    Dim oSourceTitleBlockDef As TitleBlockDefinition
	
	'Hier darauf achten das der Name wirklich Blatt:2 oder Sheet:2 ist
	Dim oSheet As Sheet = oSourceDocument.Sheets("Blatt:1")
	oSourceTitleBlockDef = oSheet.TitleBlock.Definition 
    ' Get the new title block definition.
    Dim oNewTitleBlockDef As TitleBlockDefinition
    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 'Hier eventuell noch einen möglichen Fehler abfangen der entsteht wenn kein Schriftfeld im neuen Dokument ist, dann dann kann auch keins gelöscht werden oSheet.TitleBlock.Delete Call oSheet.AddTitleBlock(oNewTitleBlockDef) Next End If End Sub

Martin Winkler
CAD Developer
Did you find this post helpful? Feel free to like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.


EESignature

Nachricht 9 von 17

Juergen_Wagner
Advisor
Advisor
Akzeptierte Lösung

Hier eine Sub der du den Pfad zur Vorlagen IDW und dem gewünschten SK Name übergibst und die dann den Rest macht:

 

Sub main
	SK_tauschen ("C:\_DOCS\Samples + Tutorial Files Inventor\Konstruktion\tutorial files\Arbor Press\Arbor_Press.dwg", "DIN-6771-1_2")
End Sub
	
Sub SK_tauschen(Pfad As String, SK As String)
	
	Dim oNewDocument As DrawingDocument
	oNewDocument = ThisApplication.ActiveDocument

	Dim oSourceDocument As DrawingDocument
	oSourceDocument = ThisApplication.Documents.Open(Pfad)

	Dim oSourceTitleBlockDef As TitleBlockDefinition
	oSourceTitleBlockDef = oSourceDocument.TitleBlockDefinitions.Item(SK)

	Dim oNewTitleBlockDef As TitleBlockDefinition
	oNewTitleBlockDef = oSourceTitleBlockDef.CopyTo(oNewDocument)

	Dim oSheet As Sheet
	For Each oSheet In oNewDocument.Sheets
		oSheet.Activate
		oSheet.TitleBlock.Delete
		Call oSheet.AddTitleBlock(oNewTitleBlockDef)
	Next
	oSourceDocument.Close(False)
End Sub
Nachricht 10 von 17

ralf.rosenburg
Enthusiast
Enthusiast

Hallo Martin,

hab's ausprobiert, funktioniert. Vielen Dank. Wenn man auf das Blatt zugreifen will perfekt.

viele Grüße Ralf

0 „Gefällt mir“-Angaben
Nachricht 11 von 17

ralf.rosenburg
Enthusiast
Enthusiast

Hallo Jürgen,

das ist ganz genau das was ich gesucht habe, funktioniert perfekt. Jetzt kann ich mein Programm vervollständigen.

Probier's zumindest 🙂

vielen Dank und viele Grüße Ralf

Nachricht 12 von 17

Anonymous
Nicht anwendbar

Hallo Zusammen,

ich brauche auch dieses Regel,

bei mir kommt der Fehler Meldung

kann mir bitte die Regel besser klären oder nur saubere hochladen

mit freundlichen Gruß

Pietro

0 „Gefällt mir“-Angaben
Nachricht 13 von 17

Udo_Huebner
Mentor
Mentor

@Anonymous 

Welche Fehlermeldung wird beim Ausführen der iLogic Regel angezeigt? Du kannst gern auch einen Screenshot hier posten.  Welche Inventor Version verwendest du? Hier hat es versionsabhängig verschiedene iLogic Überarbeitungen gegeben.

Gruß Udo Hübner (CAD-Huebner)
0 „Gefällt mir“-Angaben
Nachricht 14 von 17

ralf.rosenburg
Enthusiast
Enthusiast

Hallo Pietro,

1. Frage ich den Kunden über ein Formular ab, hierfür habe ich eine extra Regel

Die Kunden stehen in einer Excel Liste - Kundenliste

Die Auswahl erfolgt über ein Formular - Kundenauswahl

2. Frage ich den Schriftfeldtyp über ein Formular ab -Auswahl Schriftfeldtyp, hierfür habe ich eine extra Regel - Abfrage Schriftfeldtyp. Die Schriftfeldtypen stehen in einer Excel Liste - Schriftfeldtypen

Ich verwende unterschiedliche Schriftfelder für Baugruppen, Bauteile und Bibliotheksbaugruppen bzw. Bibliotheksbauteile

3. Einfügen des entsprechenden Schriftfeldes aus der Vorlagedatei in die geöffnete Zeichnung.

 

Die Regeln funktionieren in Inventor 2021

Die Regel lasse stoße ich über einen Button in einem globalen Formular an.

 

Regel zur Kundenabfrage

'Check for customer
Try
	Versuch = Parameter("Kunde:")
Catch
	oMyParameter = ThisApplication.ActiveDocument.Parameters.UserParameters
	'Setting an userParameter as text parameter
	oParameter = oMyParameter.AddByValue("Kunde:", "", UnitsTypeEnum.kTextUnits)
	'check for existing file 
	If Dir("\\storagecube\Projekte\Kundenliste.xlsx") <> "" Then
		'file exists
		MultiValue.List("Kunde:") = GoExcel.CellValues("\\storagecube\Projekte\Kundenliste.xlsx", "Tabelle1", "A1", "")
		GoExcel.Close
		iLogicVb.RunExternalRule("Z:\Vorlagen\Inventor\iLogic\Regeln\externe Regeln\Formulare öffnen\Kundenauswahl.iLogicVb")
	Else
		'workbook does NOT exist
		MessageBox.Show("Datei '\\storagecube\Projekte\Kundenliste.xlsx' existiert nicht", "schwerwiegender Fehler")
		Exit Sub
	End If
End Try

 

Regel um Formular zur Kundenauswahl zu öffnen

iLogicForm.ShowGlobal("Z:\Vorlagen\Inventor\Programmvorgaben\Design Data\iLogic\UI\versteckte Formulare\Kundenauswahl", FormMode.Modal)
 

Regel zur Abfrage des Schriftfeldtyps

'Abfrage Schriftfeldtyp
	Try
		Versuch = Parameter("Schriftfeldtyp:")
	Catch
		oMyParameter = ThisApplication.ActiveDocument.Parameters.UserParameters
		'Setting an userParameter as text parameter
		oParameter = oMyParameter.AddByValue("Schriftfeldtyp:", "", UnitsTypeEnum.kTextUnits)
		'check for existing file 
		If Dir("\\storagecube\Projekte\Liste Schriftfeldtypen.xlsx") <> "" Then
			'file exists
			MultiValue.List("Schriftfeldtyp:") = GoExcel.CellValues("\\storagecube\Projekte\Liste Schriftfeldtypen.xlsx", "Tabelle1", "A1", "")
			GoExcel.Close
			iLogicVb.RunExternalRule("Z:\Vorlagen\Inventor\iLogic\Regeln\externe Regeln\Formulare öffnen\Auswahl Schriftfeldtyp.iLogicVb")
		Else
			'workbook does NOT exist
			MessageBox.Show("Datei '\\storagecube\Projekte\Liste Schriftfeldtypen.xlsx' existiert nicht", "schwerwiegender Fehler")
			Exit Sub
		End If
	End Try

 

Regel um Formular zur Auswahl des Schriftfeldtyps zu öffnen

iLogicForm.ShowGlobal("Z:\Vorlagen\Inventor\Programmvorgaben\Design Data\iLogic\UI\versteckte Formulare\Schriftfeldtyp bestimmen", FormMode.Modal)

 

 

 

	'Kundenabfrage
	iLogicVb.RunExternalRule("Z:\Vorlagen\Inventor\iLogic\Regeln\externe Regeln\Kundenabfrage\Kundenabfrage.iLogicVb")
	Kunde = Parameter("Kunde:")
	If Parameter("Kunde:") = ""
		iLogicVb.RunExternalRule("Z:\Vorlagen\Inventor\iLogic\Regeln\externe Regeln\Formulare öffnen\Kundenauswahl.iLogicVb")
	End If
	
	'Abfrage Schriftfeldtyp
	iLogicVb.RunExternalRule("Z:\Vorlagen\Inventor\iLogic\Regeln\externe Regeln\Schriftfelder\Schriftfeldabfrage.iLogicVb")
	Schriftfeldtyp = Parameter("Schriftfeldtyp:")
	If Parameter("Schriftfeldtyp:") = ""
		iLogicVb.RunExternalRule("Z:\Vorlagen\Inventor\iLogic\Regeln\externe Regeln\Formulare öffnen\Auswahl Schriftfeldtyp.iLogicVb")
	End If
	
	'Pfadangabe Schriftfelder
	'Kunde Kunde 1
	If Parameter("Kunde:") = "Kunde 1"  And Parameter("Schriftfeldtyp:") = "Baugruppe (Projekt)" Then
		SK_Vorlage("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\aktive Schriftfelder ib-Rosenburg.idw", "Kunde 1 Baugruppe (Projekt)")
	End If
	If Parameter("Kunde:") = "Kunde 1"  And Parameter("Schriftfeldtyp:") = "Bauteil (Projekt)" Then
		SK_Vorlage("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\aktive Schriftfelder ib-Rosenburg.idw", "Kunde 1 Einzelteil (Projekt)")
	End If
	If Parameter("Kunde:") = "Kunde 1"  And Parameter("Schriftfeldtyp:") = "Baugruppe (Bibliothek)" Then
		SK_Vorlage("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\aktive Schriftfelder ib-Rosenburg.idw", "Kunde 1 Baugruppe (Bibliothek)")
	End If
		If Parameter("Kunde:") = "Kunde 1"  And Parameter("Schriftfeldtyp:") = "Bauteil (Bibliothek)" Then
		SK_Vorlage("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\aktive Schriftfelder ib-Rosenburg.idw", "Kunde 1 Einzelteil (Bibliothek)")
	End If
	
	'Kunde 2
	If Parameter("Kunde:") = "Kunde 2" And Parameter("Schriftfeldtyp:") = "Baugruppe (Projekt)" Then
		SK_Vorlage("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\aktive Schriftfelder ib-Rosenburg.idw", "Kunde 2 Baugruppe (Projekt)")
	End If
	If Parameter("Kunde:") = "Kunde 2"  And Parameter("Schriftfeldtyp:") = "Bauteil (Projekt)" Then
		SK_Vorlage("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\aktive Schriftfelder ib-Rosenburg.idw", "Kunde 2 Einzelteil (Projekt)")
	End If
	If Parameter("Kunde:") = "Kunde 2"  And Parameter("Schriftfeldtyp:") = "Baugruppe (Bibliothek)" Then
		SK_Vorlage("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\aktive Schriftfelder ib-Rosenburg.idw", "Kunde 2 Baugruppe (Bibliothek)")
	End If
		If Parameter("Kunde:") = "Kunde 2"  And Parameter("Schriftfeldtyp:") = "Bauteil (Bibliothek)" Then
		SK_Vorlage("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\aktive Schriftfelder ib-Rosenburg.idw", "Kunde 2 (Bibliothek)")
	End If
	End Sub
	
Sub SK_Vorlage(Pfad As String, SK As String)
	
	Dim oNewDocument As DrawingDocument
	oNewDocument = ThisApplication.ActiveDocument

	Dim oSourceDocument As DrawingDocument
	oSourceDocument = ThisApplication.Documents.Open(Pfad)

	Dim oSourceTitleBlockDef As TitleBlockDefinition
	oSourceTitleBlockDef = oSourceDocument.TitleBlockDefinitions.Item(SK)

	Dim oNewTitleBlockDef As TitleBlockDefinition
		Try
		oNewTitleBlockDef = oSourceTitleBlockDef.CopyTo(oNewDocument)
		Catch
		End Try

	'Schriftfeld in jedes Blatt einfügen
	Dim oSheet As Sheet
	For Each oSheet In oNewDocument.Sheets
		oSheet.Activate
		Try
		oSheet.TitleBlock.Delete
		Catch
		Call oSheet.AddTitleBlock(oNewTitleBlockDef)
		End Try
	Next
	oSourceDocument.Close(False)
End Sub

 

Bitte vor Ausführen der Regel, alle Schriftfelder aus der Zeichnung löschen, wenn da welche drin sind.

Das Schriftfeld DIN kann man nicht löschen und verbleibt in der Zeichnung.

Zum löschen der bestehenden Schriftfelder habe ich auch eine Regel.

Das Schriftfeld welches auf dem Blatt platziert ist, muss aber zuvor aus dem Blatt gelöscht werden.

 

Sub main
	TitleBlock_Delete ("DIN")
End Sub

Sub TitleBlock_Delete(SK As String)
	Dim oSheet As Sheet
	For Each oSheet In ThisDoc.Document.Sheets
		If Not oSheet.TitleBlock Is Nothing Then 
		MessageBox.Show("Bitte zuerst das Schriftfeld auf den Blättern löschen", "Routinenabbruch", MessageBoxButtons.OK, MessageBoxIcon.Error)
		Exit Sub
		End If
	Next

	Dim oTitleBlock As TitleBlockDefinition
	For Each oTitleBlock In ThisDoc.Document.TitleBlockDefinitions
		If oTitleBlock.Name <> SK Then
            'Schriftfeld löschen in den Schriftfeld Definitionen
			oTitleBlock.Delete
		End If
	Next
End Sub

 

Ich hoffe du kommst damit zurecht, sonst melde dich.

VG Ralf

Nachricht 15 von 17

ralf.rosenburg
Enthusiast
Enthusiast

Hallo Pietro,

In meiner Regel zur Kundenabfrage musst du

Sub main

in die erste Zeile schreiben.

dann geht es weiter mit

'Kundenabfrage

VG Ralf

0 „Gefällt mir“-Angaben
Nachricht 16 von 17

Anonymous
Nicht anwendbar

Hallo Ralf,

 

deine Regel ist interessant und zu kompliziert für mich.

ich verwende nur eine Schriftfelder meine problem habe paar tausende Zeichnungen zu aktualisieren.

meine aktuelle regeln habe von diese post kopiert und bringt das Fehler siehe Bilder.

erstellt auch eine neues Blatt di ich nicht brauche 

ich benutze Inventor 2020

 

mit freundlichen grüß

 

Pietro

 

 

 

 

 

 

pietro4646_0-1602177782898.png

 

0 „Gefällt mir“-Angaben
Nachricht 17 von 17

ralf.rosenburg
Enthusiast
Enthusiast

Hallo Pietro,

ich habe die Routine von Jürgen nochmal getestet. Die Routine funktioniert in soweit. Auch in Inventor 2020

 

Sub main
	SK_tauschen ("Z:\Vorlagen\Inventor\Programmvorgaben\Schriftfelder\alle Vorlagesschriftfelder ib-Rosenburg.idw", "IB-Rosenburg (Projekt)")
'du musst hier deinen vollständigen Pfad und Dateiname der Vorlage angeben, dann den Namen des Schriftfeldes der Vorlage.
End
Sub Sub SK_tauschen(Pfad As String, SK As String) Dim oNewDocument As DrawingDocument oNewDocument = ThisApplication.ActiveDocument Dim oSourceDocument As DrawingDocument oSourceDocument = ThisApplication.Documents.Open(Pfad) Dim oSourceTitleBlockDef As TitleBlockDefinition oSourceTitleBlockDef = oSourceDocument.TitleBlockDefinitions.Item(SK) Dim oNewTitleBlockDef As TitleBlockDefinition oNewTitleBlockDef = oSourceTitleBlockDef.CopyTo(oNewDocument) Dim oSheet As Sheet For Each oSheet In oNewDocument.Sheets oSheet.Activate oSheet.TitleBlock.Delete Call oSheet.AddTitleBlock(oNewTitleBlockDef) Next oSourceDocument.Close(False) End Sub
'Diesen Programmtext (Sub) kannst du direkt übernehmen


 

Bitte beachte:

1. Wenn kein Schriftfeld auf der aktiven Zeichnung positioniert ist, dann kommt eine Fehlermeldung und die Quelldatei wird wir geöffnet und nicht mehr geschlossen.

Vielleicht weiß jemand aus der Community wie das zu lösen ist?

2. Wenn du dein neues Schriftfeld importiert hast, und die Routine erneut ausführst, dann wird eine Kopie des Schriftfeldes erzeugt und eingefügt.

Vielleicht weiß jemand aus der Community wie das zu lösen ist?

 

VG Ralf

 

0 „Gefällt mir“-Angaben