Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Inventor VBA
  Fehler TitleBlock Copy Code

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:  Fehler TitleBlock Copy Code (1680 mal gelesen)
Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 26. Nov. 2012 09:38    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,

ich hab ein Fehler im aus der API-Hilfe kopierten Code: dort wo es Kursiv und Fett ist gibt einen Felher Nr. 5 : Invalid procedure call or argument. Ich habe auch danach gegoogelt und alle mögliche Änderungen im Code gemacht, funkt nicht hat jemand ne Ahnung was der Fehler soll?


Code:
Public Sub TitleBlockCopy()

' assume Inventor application is available
Dim oSourceDocument As DrawingDocument
Set oSourceDocument = ThisApplication.ActiveDocument

' Open the new drawing to copy the title block into.
Dim oNewDocument As DrawingDocument
Set oNewDocument = ThisApplication.Documents.Open("C:\Users\Desktop\test.idw")

' Get the new source title block definition.
Dim oSourceTitleBlockDef As TitleBlockDefinition
Set oSourceTitleBlockDef = oSourceDocument.ActiveSheet.TitleBlock.Definition 'oSourceDocument.TitleBlockDefinitions.Item("DIN-Schwarz")

' Get the new title block definition.
Dim oNewTitleBlockDef As TitleBlockDefinition
Set oNewTitleBlockDef = oSourceTitleBlockDef.CopyTo(oNewDocument)

' Iterate through the sheets, replace tibleblock with the one newly added.
Dim oSheet As Sheet
For Each oSheet In oNewDocument.Sheets

oSheet.Activate


oSheet.TitleBlock.Delete
Call oSheet.AddTitleBlock(oNewTitleBlockDef)

Next

End Sub


Vielen Dank schon Mal!

------------------
----------------
Viele Grüße
Endu

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: 26. Nov. 2012 10:43    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 Enduro 10 Unities + Antwort hilfreich

Moin

Mal einen Haltepunkt auf die Zeile gesetzt und den Inhalt von oNewTitleBlockDef kontrolliert? Ich vermute die Variable ist leer oder mit etwas anderem gefüllt als der Schriftfelddefinition.
Oder hat dein neues Schriftfeld angeforderte Eingaben?

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

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 26. Nov. 2012 11: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

Hallo Ralf,

Danke für die schnelle Antwort.
Wie soll ich den Inhalt von oNewTitleBlockDef kontrollieren? Die Variable soll mit Schriftfelddefinition von Sourcedoc gefüllt sein..

------------------
----------------
Viele Grüße
Endu

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: 26. Nov. 2012 11:59    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 Enduro 10 Unities + Antwort hilfreich


vbaeditor.jpg

 
Hallo

s.Screenshot:
1. Überwachungsfenster im VBA-Editor einblenden
2. auf den Fensterrand neben der Zeile klicken --> es erscheint ein roter Haltepunkt
3. rechte Maustaste auf die Variable oNewTitleBlockDef und aus dem Kontextmenü "Add Watch" auswählen
4. Script laufen lassen --> hält am Haltepunkt an
5. Inhalt von oNewTitleBlockDef im Überwachungsfenster kontrollieren

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

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 26. Nov. 2012 13:17    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


vba.jpg

 
Done..

..und wo sehe ich jetzt den Inhalt? 

------------------
----------------
Viele Grüße
Endu

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: 26. Nov. 2012 15:08    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 Enduro 10 Unities + Antwort hilfreich

Hallo

Den Inhalt siehst du in deinem Screenshot. Wäre die Variable leer, würdest du den Unterzweig nicht aufklappen können und in der obersten Zeile müßte in der Spalte Value Nothing drin stehen.
Deine Variable ist mit einer Schriftfelddefinition gefüllt die "Kopie von Kopie von Kopie ... von DIN-Schwarz" heißt. Das sieht aus, als wäre zig-mal die Schriftfelddefinition ins Quelldokument kopiert worden. Seltsam. Kannst du das Quelldokument hochladen, damit ich mir mal die Schriftfelddefinition ansehen kann?

Was ich grad sehe, hast du nur deinen Benutzernamen in der Zeile

Code:
Set oNewDocument = ThisApplication.Documents.Open("C:\Users\Desktop\test.idw")

entfernt oder ist der Pfad falsch?

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

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 26. Nov. 2012 15:54    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

der Pfad stimmt, ich habe den Username rausgenommen  hochladen darf ich sie leider nicht, aber ich habe den Code auch auf anderen Zeichnungen getestet und es funktioniert nicht. den alten Schriftopf löscht er aber fügt neuen nicht ein... sehr seltsam.

jetzt steht unter "Name" nicht mehr kopie von kopie von... sondern nur "kopie von DIN-Schwarz" und unter IsReferenced steht wieder "False" kann das etwas bedeuten?

------------------
----------------
Viele Grüße
Endu

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: 26. Nov. 2012 16:48    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 Enduro 10 Unities + Antwort hilfreich

Hallo

Ohne die Originaldatei wird's echt wildes Gestocher im Nebel. Ich hab den Code durchprobiert, der läuft.
Füge im Zieldokument das Schriftfeld auf ein leeres Blatt von Hand ein. Geht das ohne irgendwelche Meldungen oder fragt Inventor z.B. nach Eingaben?

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

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 28. Nov. 2012 09:39    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

Werde gleich ausprobieren...

------------------
----------------
Viele Grüße
Endu

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 29. Nov. 2012 10:34    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

... geht ohne Meldung.   

Mein Problem ist eign., ich schreibe ja die Felder über ihre Item Nummern. Der Feld <Bauteilnummer> hat bei mir die Item-Nr 22.

Es gibt aber seltene Fälle, wo die Nummer auf diese Position 21 ist und nicht die 22. Die 22 ist dann dementsprechend irgendwo in der Mitte. Also wenn ich Makro ausführe kommen die Felder z.B. "Bezeichnung" und "Bauteilnummer" durcheinander.

Beispiel-Abschnitt aus dem Makro:

Code:
oSketch.TextBoxes.Item(22).FormattedText = "<StyleOverride FontSize='0,6'><Property Document='model' PropertySet='Design Tracking Properties' Property='Part Number' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='5'>BAUTEILNUMMER</Property></StyleOverride><StyleOverride FontSize='0,6'> Rev </StyleOverride><StyleOverride FontSize='0,6'><Property Document='model' PropertySet='Inventor Summary Information' Property='Revision Number' FormatID='{F29F85E0-4FF9-1068-AB91-08002B27B3D9}' PropertyID='9'>REVISIONSNUMMER</Property></StyleOverride>"

Wie kann sowas sein, wenn in der Vorlage die richtige Item-Nr 22 ist?   

------------------
----------------
Viele Grüße
Endu

[Diese Nachricht wurde von Enduro am 29. Nov. 2012 editiert.]

[Diese Nachricht wurde von Enduro am 29. Nov. 2012 editiert.]

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: 29. Nov. 2012 12:31    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 Enduro 10 Unities + Antwort hilfreich

Hi

Ich versteh zwar nicht warum du den Text nicht in der Vorlage definierst und dann einfach mitkopierst, aber die Itemnummer ist alles andere als geeignet, um Objekte eindeutig zu identifizieren. Wenn die Textfelder in der Vorlage leer sind und nach dem Kopieren spezifisch gefüllt werden sollen, schau dir die AttributSets der Textboxen an. Erstelle dort für jede Textbox in deiner Vorlage ein passend benanntes Attribut und nutze den Attributmanager um die Textbox zu finden.

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

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

Enduro
Mitglied
Wirtschaftsinformatik Studentin


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

Beiträge: 53
Registriert: 27.07.2012

Hallo Forum :-)
Win 7
Office 2007
Autodesk® Inventor® 2012

erstellt am: 29. Nov. 2012 13:14    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 Ralf,

Erstmal Danke für deine Hilfe.

Die Textboxes werden doch dür Textfeld Einträge definiert? ich bin grad im BlockDefinition.
Die Vorlage ist schon richtig definiert aber ich muss Schriftkopf Felder von alte Zeichnungen ändern. Ich habe festgestellt, dass die Item-Nummern bei den meisten (über 90%) Zeichnungen identisch sind. So habe ich dann auf diese Items die Felder aktualisiert:

Code:
Sub schriftkopf_update()

Dim Rev As String
Dim Bauteil As String

Dim oDrawDoc As DrawingDocument
Set oDrawDoc = ThisApplication.ActiveDocument


''Revisionsnummer von dem Erstansicht
Dim oReferencedPartDoc As Document
For Each oReferencedPartDoc In oDrawDoc.AllReferencedDocuments

Dim name As String
Dim typ1 As String

name = oReferencedPartDoc.DisplayName
typ1 = Right(oReferencedPartDoc.FullFileName, 4)

If name = oDrawDoc.DisplayName And typ1 = ".ipt" Then


'.............................................................................................................................

'Textfild Inhalt geht an die Modell iProp
Dim oapp As Inventor.Application
Dim oDoc As Inventor.DrawingDocument
Set oapp = ThisApplication
Set oDoc = oapp.ActiveDocument
Dim obox As Inventor.TextBox
Dim kundName As String, verwZweck As String, bez As String, typ As String 'Variable für die Datenübergabe von Textfield nach Bauteil iProps

For Each obox In oDoc.ActiveSheet.TitleBlock.Definition.Sketch.TextBoxes

    Select Case obox.Text
            'Bezeichnung --> Bezeichnung
            Case "BEZEICHNUNG"
            bez = oDoc.ActiveSheet.TitleBlock.GetResultText(obox)
               
            If bez <> "" Then
            oReferencedPartDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Description").Value = bez
            End If

            'Kundennamme --> Kostenstelle
            Case "Kunde-Name:", "Kundenname:" To "Kundenname"
            kundName = oDoc.ActiveSheet.TitleBlock.GetResultText(obox)
            If kundName <> "" Then
            oReferencedPartDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Cost Center").Value = kundName 'odoc.ActiveSheet.TitleBlock.GetResultText(obox)
            End If

                          'Kundennamme --> Kostenstelle
                            Case "Kundenname:"
                            kundName = oDoc.ActiveSheet.TitleBlock.GetResultText(obox)
                            If kundName <> "" Then
                            oReferencedPartDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Cost Center").Value = kundName 'odoc.ActiveSheet.TitleBlock.GetResultText(obox)
                            End If

                                            'Kundennamme --> Kostenstelle
                                            Case "Kundenname"
                                            kundName = oDoc.ActiveSheet.TitleBlock.GetResultText(obox)
                                            If kundName <> "" Then
                                            oReferencedPartDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Cost Center").Value = kundName
                                            End If 'odoc.ActiveSheet.TitleBlock.GetResultText(obox)

            'Verwendungszweck --> Kategorie
            Case "Verwendungszweck"
            verwZweck = oDoc.ActiveSheet.TitleBlock.GetResultText(obox)
            If verwZweck <> "" Then
            oReferencedPartDoc.PropertySets.Item("{D5CDD502-2E9C-101B-9397-08002B2CF9AE}").Item("Category").Value = verwZweck
            End If
                Case "Verwendungszweck:"
                verwZweck = oDoc.ActiveSheet.TitleBlock.GetResultText(obox)
                If verwZweck <> "" Then
                oReferencedPartDoc.PropertySets.Item("{D5CDD502-2E9C-101B-9397-08002B2CF9AE}").Item("Category").Value = verwZweck
                End If
               
            'Typ --> Project
            Case "Typ"
            typ = oDoc.ActiveSheet.TitleBlock.GetResultText(obox)
            If typ <> "" Then
            oReferencedPartDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Project").Value = typ
            End If
                        Case "Typ:"
                        typ = oDoc.ActiveSheet.TitleBlock.GetResultText(obox)
                        If typ <> "" Then
                        oReferencedPartDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Project").Value = typ
                        End If
    End Select
   
Next obox

End If

Next oReferencedPartDoc
'............................................................................................................................
Dim bezeichnung As String
Dim kostenstelle As String
Dim kategorie As String
Dim projekt As String

Dim oRefDoc As Document
Set oRefDoc = oDrawDoc.ReferencedDocuments.Item(1)


' Create the new title block defintion.
Dim oTitleBlockDef As TitleBlockDefinition
Set oTitleBlockDef = oDrawDoc.ActiveSheet.TitleBlock.Definition

    Dim oSketch As DrawingSketch
    Call oTitleBlockDef.Edit(oSketch)
   
    Dim bauteilnummer As String
    bauteilnummer = oRefDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Part Number").Value
    projekt = oRefDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Project").Value
    kostenstelle = oRefDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Cost Center").Value
    bezeichnung = oRefDoc.PropertySets.Item("{32853F0F-3444-11D1-9E93-0060B03C1CA6}").Item("Description").Value
    kategorie = oRefDoc.PropertySets.Item("{D5CDD502-2E9C-101B-9397-08002B2CF9AE}").Item("Category").Value
   
'    Kostenstelle, also Kundenname
If kostenstelle <> "" Then

    If Len(kostenstelle) < 16 Then 'And oSketch.TextBoxes.Item(65).FormattedText = "<Prompt ReadOnlyUniqueID='55'>Kunde-Name:</Prompt>" Then
    oSketch.TextBoxes.Item(65).FormattedText = "<StyleOverride FontSize='0,5'><Property Document='model' PropertySet='Design Tracking Properties' Property='Cost Center' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='9'>KOSTENSTELLE</Property></StyleOverride>"

    ElseIf Len(kostenstelle) <= 24 And oSketch.TextBoxes.Item(65).FormattedText = "<Prompt ReadOnlyUniqueID='55'>Kunde-Name:</Prompt>" Then
    oSketch.TextBoxes.Item(65).FormattedText = "<StyleOverride FontSize='0,35'><Property Document='model' PropertySet='Design Tracking Properties' Property='Cost Center' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='9'>KOSTENSTELLE</Property></StyleOverride>"

    ElseIf Len(kostenstelle) > 24 And oSketch.TextBoxes.Item(65).FormattedText = "<Prompt ReadOnlyUniqueID='55'>Kunde-Name:</Prompt>" Then
    oSketch.TextBoxes.Item(65).FormattedText = "<StyleOverride FontSize='0,25'><Property Document='model' PropertySet='Design Tracking Properties' Property='Cost Center' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='9'>KOSTENSTELLE</Property></StyleOverride>"
    End If
Else: MsgBox "Kundenname bzw. Kostenstelle muss manuell eingetragen werden!"

End If

        'Bezeichnung
    If bezeichnung <> "" Then 'And oSketch.TextBoxes.Item(21).FormattedText = "<Prompt ReadOnlyUniqueID='1'>BEZEICHNUNG</Prompt>" Then
        If Len(bezeichnung) < 24 And bezeichnung <> "" Then
        oSketch.TextBoxes.Item(21).FormattedText = "<StyleOverride FontSize='0,6'><Property Document='model' PropertySet='Design Tracking Properties' Property='Description' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='29'>BESCHREIBUNG</Property></StyleOverride>"

        ElseIf Len(bezeichnung) >= 24 And Len(bezeichnung) <= 27 Then
        oSketch.TextBoxes.Item(21).FormattedText = "<StyleOverride FontSize='0,52'><Property Document='model' PropertySet='Design Tracking Properties' Property='Description' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='29'>BESCHREIBUNG</Property></StyleOverride>"
     
        ElseIf Len(bezeichnung) >= 27 Then
        oSketch.TextBoxes.Item(21).FormattedText = "<StyleOverride FontSize='0,45'><Property Document='model' PropertySet='Design Tracking Properties' Property='Description' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='29'>BESCHREIBUNG</Property></StyleOverride>"
     
          End If
    Else: MsgBox "Bezeichnung muss manuell eingetragen werden!"
    End If

    'Kategorie
If kategorie <> "" Then 'And oSketch.TextBoxes.Item(66).FormattedText = "<Prompt ReadOnlyUniqueID='56'>Verwendungszweck</Prompt>" Then
    If Len(kategorie) < 35 Then
    oSketch.TextBoxes.Item(66).FormattedText = "<StyleOverride FontSize='0,4'><Property Document='model' PropertySet='Inventor Document Summary Information' Property='Category' FormatID='{D5CDD502-2E9C-101B-9397-08002B2CF9AE}' PropertyID='2'>KATEGORIE</Property></StyleOverride>"

    Else
    oSketch.TextBoxes.Item(66).FormattedText = "<StyleOverride FontSize='0,3'><Property Document='model' PropertySet='Inventor Document Summary Information' Property='Category' FormatID='{D5CDD502-2E9C-101B-9397-08002B2CF9AE}' PropertyID='2'>KATEGORIE</Property></StyleOverride>"
    End If
Else: MsgBox "Verwendungszweck bzw. Kategorie muss manuell eingetragen werden!"
End If
        'Project
    If projekt <> "" Then 'And oSketch.TextBoxes.Item(67).FormattedText = "<Prompt ReadOnlyUniqueID='57'>Typ</Prompt>" Then
        If Len(projekt) < 36 Then

        oSketch.TextBoxes.Item(67).FormattedText = "<StyleOverride FontSize='0,35'><Property Document='model' PropertySet='Design Tracking Properties' Property='Project' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='7'>PROJEKT</Property></StyleOverride>"
        Else

        oSketch.TextBoxes.Item(67).FormattedText = "<StyleOverride FontSize='0,2'><Property Document='model' PropertySet='Design Tracking Properties' Property='Project' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='7'>PROJEKT</Property></StyleOverride>"
        End If
    Else: MsgBox "Projekt bzw. Typ muss manuell eingetragen werden!"
    End If

        'Bauteilnummer und Revisionsnummer
        If Len(bauteilnummer) < 10 Then 'And oSketch.TextBoxes.Item(22).FormattedText = "<Property Document='model' PropertySet='Design Tracking Properties' Property='Part Number' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='5'>BAUTEILNUMMER</Property>" Then

        oSketch.TextBoxes.Item(21).FormattedText = "<StyleOverride FontSize='0,6'><Property Document='model' PropertySet='Design Tracking Properties' Property='Part Number' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='5'>BAUTEILNUMMER</Property></StyleOverride><StyleOverride FontSize='0,6'> Rev </StyleOverride><StyleOverride FontSize='0,6'><Property Document='model' PropertySet='Inventor Summary Information' Property='Revision Number' FormatID='{F29F85E0-4FF9-1068-AB91-08002B27B3D9}' PropertyID='9'>REVISIONSNUMMER</Property></StyleOverride>"
        ElseIf Len(bauteilnummer) >= 10 Then 'And oSketch.TextBoxes.Item(22).FormattedText = "<Property Document='model' PropertySet='Design Tracking Properties' Property='Part Number' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='5'>BAUTEILNUMMER</Property>" Then

        oSketch.TextBoxes.Item(21).FormattedText = "<StyleOverride FontSize='0,4'><Property Document='model' PropertySet='Design Tracking Properties' Property='Part Number' FormatID='{32853F0F-3444-11D1-9E93-0060B03C1CA6}' PropertyID='5'>BAUTEILNUMMER</Property></StyleOverride><StyleOverride FontSize='0,4'> Rev </StyleOverride><StyleOverride FontSize='0,4'><Property Document='model' PropertySet='Inventor Summary Information' Property='Revision Number' FormatID='{F29F85E0-4FF9-1068-AB91-08002B27B3D9}' PropertyID='9'>REVISIONSNUMMER</Property></StyleOverride>"
        Else: MsgBox "Bauteilnummer bzw. Revisionsnummer muss manuell eingetragen werden!"
        End If

   
    Call oTitleBlockDef.ExitEdit

End Sub


Dieser gigantische Code hier  liest Daten aus dem Feldtext liste, fügt sie in die jeweiligen iProps von Modell rein und bildet sie dann so auf dem Blockdefinition ab.

die TextBox habe ich für Daten aus dem Feldtext (erster Teil im Code) genommen. Der Code funktioniert, nur ist das Problem dass es die iProp-Texte manchmal falsch platziert.

------------------
----------------
Viele Grüße
Endu

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