| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| Strömungssimulation auf der 3DEXPERIENCE Plattform |
Autor
|
Thema: Schriftfeld auf jedem Blatt aktualisieren (1771 mal gelesen)
|
modal04 Mitglied Entwickler
Beiträge: 44 Registriert: 11.09.2012 Microsoft Windows XP Professional (5.1, Build 2600) Hewlett-Packard HP Compaq dc7700 Small Form Factor Intel(R) Core(TM) 2 CPU 6400 @ 2,13 GHz (2 CPUs) 2024 MB RAM<P>Solidworks(R) 2012 SP1.0
|
erstellt am: 04. Jan. 2013 14:50 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe ein vorgefertigtes Makro so umgeändert das ich in einem Formular verschiedene Angaben mache und diese sollen dann in der Zeichnung in das Schriftfeld eingefügt werden. Klappt soweit ohne Probleme bis auf eins! Wenn ich in einer Zeichnung fünf verschieden Blätter habe, dann aktualisiert er mir (so kommt es mir vor) manche per Random-Funktion. Ich meine Blatt 1, 3 und 4 werden zum Beispiel aktualisiert und Blatt 2 und 5 nicht. Einandermal werden Blatt 3 und 5 aktualisiert und der Rest wieder nicht. Im folgenden mal der Code meiner Sub:
Code:
Sub berSfEintragen() ' Diese Funktion schreibt die aktuellen Werte, die in den Edit-Feldern ' eingetragen sind, in die benutzerdefinerten Dateieigenschaften zurück. ' Durch die Verknüpfung von den Schriftfeldtexten mit diesen Eigenschaften ' werden diese Änderungen dann im Schriftfeld angezeigt. ' In einem vernünftigen Programm sollten natürlich die Werte auf ihre ' Zulässigkeit überprüft werden (am besten schon bei der Eingabe) Dim swApp As Object Dim Model As Object Set swApp = CreateObject("SldWorks.Application") swApp.Visible = True Set Model = swApp.ActiveDoc If Model Is Nothing Then Call MsgBox("Keine Datei geöffnet", vbOKOnly, "Information") Exit Sub End If ' ' in dieser Funktion werden die Werte geschrieben, also andersrum wie oben ' wenn Attribute erzeugt werden sollen wird die zweite Methode verwendet, ' wenn nur mit bestehende Attributen gearbeitet werden soll die erste. Dim dummy 'erst die alten Infos löschen dummy = Model.DeleteCustomInfo("AuftragsNr") dummy = Model.DeleteCustomInfo("Disponent") dummy = Model.DeleteCustomInfo("Werkstoff") dummy = Model.DeleteCustomInfo("Druckmotiv") ' ' dann die benötigten Infos als Dateieigenschaft eintragen dummy = Model.AddCustomInfo("AuftragsNr", "Text", txt_an.Text) dummy = Model.AddCustomInfo("Disponent", "Text", cb_disponent.Text) dummy = Model.AddCustomInfo("Werkstoff", "Text", cb_werkstoff.Text) dummy = Model.AddCustomInfo("Druckmotiv", "Text", cb_druckmotiv.Text) ' und damit die Werte auch direkt im Schriftfeld angezeigt werden müssen ' wir ein Rebuild auf das Modell machen. Kann natürlich bei großen Dateien ' schonmal seine Zeit brauchen ;-) Dim res As Long res = Model.EditRebuild() End Sub
Kann man da ne Schleife einbauen die jedes Blatt durchgeht oder wirklich alle aktualisiert? Danke für eure Hilfe! Freundliche Grüße Daniel Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jörg W Mitglied Maschinenbautechniker und CAD Admin
Beiträge: 1232 Registriert: 12.07.2001 Win 10 64bit SW2018 SP5 HP z240 16GB Ram Quadro P1000
|
erstellt am: 07. Jan. 2013 12:21 <-- editieren / zitieren --> Unities abgeben: Nur für modal04
|
modal04 Mitglied Entwickler
Beiträge: 44 Registriert: 11.09.2012 Microsoft Windows XP Professional (5.1, Build 2600) Hewlett-Packard HP Compaq dc7700 Small Form Factor Intel(R) Core(TM) 2 CPU 6400 @ 2,13 GHz (2 CPUs) 2024 MB RAM<P>Solidworks(R) 2012 SP1.0
|
erstellt am: 08. Jan. 2013 08:32 <-- editieren / zitieren --> Unities abgeben:
|
Jörg W Mitglied Maschinenbautechniker und CAD Admin
Beiträge: 1232 Registriert: 12.07.2001 Win 10 64bit SW2018 SP5 HP z240 16GB Ram Quadro P1000
|
erstellt am: 09. Jan. 2013 11:37 <-- editieren / zitieren --> Unities abgeben: Nur für modal04
|