| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte |
Autor
|
Thema: Schriftfeld austauschen (3689 mal gelesen)
|
Bud87 Mitglied
Beiträge: 157 Registriert: 11.09.2008 Catia V5 R17 Windows 7 64bit Inventor 2013
|
erstellt am: 01. Mai. 2013 11:42 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich möchte Schriftfelder per VBA/ilogic austauschen. Es handelt sich um unterschiedliche Schriftfelder mit Feldtext. Solange ich gleiche Schriftfelder austausche gibt es kein Problem. Bei unterschiedlichen Schriftfelden funktinoiert es dagegen nicht. Kann mir jemand helfen? Danke Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 01. Mai. 2013 12:35 <-- editieren / zitieren --> Unities abgeben: Nur für Bud87
Hallo Wenn du mit Feldtext angeforderte Eingaben meinst, die beim normalen Einfügen den Dialog zum Ausfüllen erscheinen lassen, die Eingaben des neuen Schriftfeldes müssen in der richtigen Reihenfolge beim Einfügen als Stringarray mitgegeben werden. Kann sein, das bei gleicher Anzahl Inventor automatisch die alten übernimmt und deswegen kein Fehler kommt. Sollen die alten Eingaben übernommen werden, mußt du die vorab in ein Stringarray auslesen, sortieren, um die fehlenden neuen Angaben ergänzen und dem neuen Schriftfeld mitgeben. Die Reihenfolge der Eingaben kannst du aus dem Dialog beim Einfügen ablesen oder im Debugger die Reihenfolge der Textboxes anschauen. ------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bud87 Mitglied
Beiträge: 157 Registriert: 11.09.2008 Catia V5 R17 Windows 7 64bit Inventor 2013
|
erstellt am: 01. Mai. 2013 12:37 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 01. Mai. 2013 13:02 <-- editieren / zitieren --> Unities abgeben: Nur für Bud87
Hallo Sieh dir mal das Beispiel aus der Inventor Programmierungshilfe an. Array mit entsprechender Größe (die Anzahl muß exakt der Anzahl der angeforderten Eingaben entsprechen) anlegen und beim Einfügen mitgeben. Zum Auslesen der Inhalte im alten Schriftfeld schau dir mal die TitleBlock.GetResultText Methode an. Das Auslesen sollte vor dem Löschen des alten Schriftfeldes erfolgen. Du mußt dann, abweichend vom Beispiel erst das Array anlegen und füllen. Code: Public Sub InsertTitleBlockOnSheet() ' Set a reference to the drawing document. ' This assumes a drawing document is active. Dim oDrawDoc As DrawingDocument Set oDrawDoc = ThisApplication.ActiveDocument ' Obtain a reference to the desired border defintion. Dim oTitleBlockDef As TitleBlockDefinition Set oTitleBlockDef = oDrawDoc.TitleBlockDefinitions.Item("Sample Title Block") Dim oSheet As Sheet Set oSheet = oDrawDoc.ActiveSheet ' Check to see if the sheet already has a title block and delete it if it does. If Not oSheet.TitleBlock Is Nothing Then oSheet.TitleBlock.Delete End If ' This title block definition contains two prompted string input. An array ' must be input that contains the strings for the prompted strings. Dim sPromptStrings(1 To 2) As String sPromptStrings(1) = "String 1" sPromptStrings(2) = "String 2" ' Add an instance of the title block definition to the sheet. Dim oTitleBlock As TitleBlock Set oTitleBlock = oSheet.AddTitleBlock(oTitleBlockDef, , sPromptStrings) End Sub
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Bud87 Mitglied
Beiträge: 157 Registriert: 11.09.2008 Catia V5 R17 Windows 7 64bit Inventor 2013
|
erstellt am: 01. Mai. 2013 18:05 <-- editieren / zitieren --> Unities abgeben:
|
rkauskh Moderator Dipl.-Ing. (FH) Versorgungstechnik
Beiträge: 2166 Registriert: 15.11.2006 Windows 10 x64, AIP 2022
|
erstellt am: 02. Mai. 2013 07:24 <-- editieren / zitieren --> Unities abgeben: Nur für Bud87
Moin Jain. Wenn in dem neuem Schriftfeld angeforderte Eingaben enthalten sind, müssen die mitgegeben werden. Es sagt aber niemand, das die Felder nicht leer sein dürfen. Also, zähl die angeforderten Eingaben und erstelle ein leeres Array mit der entsprechenden Anzahl Felder und gib das leere Array mit. Das sollte genügen.
------------------ MfG Ralf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |