| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| E-Book: Bessere Konstruktion von Industrieanlagen dank SOLIDWORKS Simulation |
Autor
|
Thema: API: Blattformat neu laden (4262 mal gelesen)
|
u.clemens Mitglied Konstrukteur
Beiträge: 964 Registriert: 04.07.2000 engineer's law o cheap o fast o good check only two !
|
erstellt am: 13. Jun. 2001 12:44 <-- editieren / zitieren --> Unities abgeben:
hallo, in einer Zeichnung besteht die Möglichkeit, ein Blattformat neu zuladen. per GUI z.B. RMB auf dem aktuellen Blatt - Eigenschaften... -> PopUp-Fenster: Blatteinrichtung. Jetzt kann man einstellen Blattformat: z.B. benutzerdefiniert und entsprechenden Pfad+Dateinamen für das Blattformat. Damit es wirklich übernommen wird, muß der Button "Blattformat neu laden" betätigt werden. per API nun: klar ist die Einstellung auf benutzerdefiniert (sheet.SetProperties) klar ist die Vorgabe der Datei für das Blattformat (sheet.SetTemplateName) aber wie kriege ich SWX nun dazu, diese Änderung auch zu übernehmen? Nach Ablauf meines Makros steht zwar das neue Blattformat in o.g. Fenster - aber die Änderung wird nicht in der Zeichnung übernommen/angezeigt (entspr. Button "Blattformat neu laden"). In der API-Hilfe habe ich nichts dazu gefunden und Makro aufzeichnen hat auch nichts gebracht. drawing.SetUpSheet3/4 anstatt sheet.SetTemplateName hat bei mir auch zu keinen anderen Ergebnis geführt. mfg uc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StefanBerlitz Guter-Geist-Moderator IT Admin (CAx)
Beiträge: 8756 Registriert: 02.03.2000 SunZu sagt: Analysiere die Vorteile, die du aus meinem Ratschlag ziehst. Dann gliedere deine Kräfte entsprechend und mache dir außergewöhnliche Taktiken zunutze.
|
erstellt am: 13. Jun. 2001 14:02 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
Hallo UC, hab bei mir kein Problem mit der SetupSheet4. Das beispiel funktioniert gut:
Code:
Dim swApp As Object Dim DrawingDoc As Object Dim ret As BooleanSub main() Set swApp = CreateObject("SldWorks.Application") Set DrawingDoc = swApp.ActiveDoc ret = DrawingDoc.SetupSheet4( _ "Blattname", _ swDwgPapersUserDefined, _ swDwgTemplateCustom, _ 1, _ 1, _ True, _ "i:\test\temp_a1.slddrt", _ 0.841, _ 0.594, _ "Standard") End Sub
Vielleicht bei dir mal einfach ein DrawingDoc.EditRebuild hinterherschicken? Ciao, Stefan ------------------ -- Inoffizielle Solidworks Hilfeseite http://solidworks.cad.de EMail: Stefan.Berlitz@solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
u.clemens Mitglied Konstrukteur
Beiträge: 964 Registriert: 04.07.2000 engineer's law o cheap o fast o good check only two !
|
erstellt am: 13. Jun. 2001 16:47 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von StefanBerlitz: hab bei mir kein Problem mit der SetupSheet4. Das beispiel funktioniert gut:
danke, stefan bei mir auch ! Das Problem lag darin, daß ich eigentlich das Blattformat "reloaden" will, d.h. es wird das Blattformat mit dem gleichen Namen wieder geladen. Wer sich jetzt fragt: wozu ? - im Blattformat wurden inzwischen einige Änderungen vorgenommen, und bei alten Zeichnungen soll die geänderte Blattformatvorlage reingezogen werden. Wird jedoch SetupSheet mit dem gleichen Blattformat aufgerufen, wie es schon auf dem aktuellen Blatt vorhanden ist - passiert gar nichts. Jedenfalls klappt es jetzt, nachdem ich einen Blattformatwechsel erzwinge (erst ein dummy-blattformat und anschließend das richtige Blattformat mit dem gleichen Namen wie das ursprüngliche Blattformat). mfg uc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
A.Bumbacher Mitglied Konstrukteur
Beiträge: 120 Registriert: 16.12.2002 SWX2019 SP4.0 HP Z440
|
erstellt am: 09. Mai. 2007 14:57 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
Zitat: Original erstellt von StefanBerlitz: Hallo UC,hab bei mir kein Problem mit der SetupSheet4. Das beispiel funktioniert gut ... Ciao, Stefan
Hallo zusammen Danke Stefan, hat bei mir auch geklappt! Leider habe ich das Problem, dass der Blattmassstab immer auf 1:1 gesetzt wird! Was muss ich tun das dies nicht passiert?? (API ist für mich einfach einwenig (zu)kompliziert! oder ich zu dumm ) Gruss Andi ------------------ Mit freundlichen Grüssen Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
u.clemens Mitglied Konstrukteur
Beiträge: 964 Registriert: 04.07.2000 engineer's law o cheap o fast o good check only two !
|
erstellt am: 09. Mai. 2007 15:11 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von A.Bumbacher: ... Blattmassstab immer auf 1:1 ...
die beiden Werte '1' als Parameter von SetupSheet4 in Stefans Beispiel geben das auch so vor - wenn du das anders haben willst, mußt du dort andere Werte eintragen. ------------------ mfg uc Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
A.Bumbacher Mitglied Konstrukteur
Beiträge: 120 Registriert: 16.12.2002 SWX2019 SP4.0 HP Z440
|
erstellt am: 20. Jun. 2007 07:31 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
Zitat: Original erstellt von u.clemens: die beiden Werte '1' als Parameter von SetupSheet4 in Stefans Beispiel geben das auch so vor - wenn du das anders haben willst, mußt du dort andere Werte eintragen.
Hallo Clemens Massstab habe ich dank deinem Tipp hingekriegt! MERCI!! Nun erfreut sich dieses "Tool", bei uns, mit immer grösserer Beliebtheit! Aber einen Schönheitsfehler bringe ich (aus oben genannten Gründen )nicht weg. Die Bezeichnung "Blatt1" usw. wird immer auf "Blattnamen" umbennent!!? Bin sehr dankbar für jeden Tipp!!! ------------------ Mit freundlichen Grüssen Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 20. Jun. 2007 08:14 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
Guten Morgen Andi, Zitat: Original erstellt von StefanBerlitz:
Code:
ret = DrawingDoc.SetupSheet4( _ "Blattname", _ swDwgPapersUserDefined, _ swDwgTemplateCustom, _ 1, _ 1, _ True, _ "i:\test\temp_a1.slddrt", _ 0.841, _ 0.594, _ "Standard")
Der erste Parameter der SetupSheet4 Methode definiert den Blattnamen. Diesem Parameter wird in Stefans Beispiel auch ein String mit dem Inhalt "Blattnamen" übergeben. Ersetze diesen einfach durch deinen gewünschten Inhalt. Denkbar wäre z.B. ein Blattzähler und folgende Übergabe:
Code:
Dim sBlatt as string Dim iBlattAnzahl as integer sBlatt = "Blatt " iBlattAnzahl = 1 ret = DrawingDoc.SetupSheet4( _ sBlatt & iBlattAnzahl, _ swDwgPapersUserDefined, _ swDwgTemplateCustom, _ 1, _ 1, _ True, _ "i:\test\temp_a1.slddrt", _ 0.841, _ 0.594, _ "Standard")
------------------ Mfg Daniel Brauchen Sie Hilfe, sind Sie in Not? Wir retten Sie mit unserem Code! ------------------
SolidWorks | API | Tools | Schulung | Freeware | Schuler Design Automation GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
A.Bumbacher Mitglied Konstrukteur
Beiträge: 120 Registriert: 16.12.2002 SWX2019 SP4.0 HP Z440
|
erstellt am: 20. Jun. 2007 08:46 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
Zitat: Original erstellt von tbd: ... Denkbar wäre z.B. ein Blattzähler und folgende Übergabe:
Code:
Dim sBlatt as string Dim iBlattAnzahl as integer sBlatt = "Blatt " iBlattAnzahl = 1 ret = DrawingDoc.SetupSheet4( _ sBlatt & iBlattAnzahl, _ swDwgPapersUserDefined, _ swDwgTemplateCustom, _ 1, _ 1, _ True, _ "i:\test\temp_a1.slddrt", _ 0.841, _ 0.594, _ "Standard")
Danke, das ist es!! Wie kann ich jetzt einstellen das er bei "Blatt2" nicht mit "Blatt1" überschreibt?? (Sorry die dummen Fragen aber i blicke bei API (noch) nicht ganz durch)
Gruss
------------------ Mit freundlichen Grüssen Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 20. Jun. 2007 08:54 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
|
A.Bumbacher Mitglied Konstrukteur
Beiträge: 120 Registriert: 16.12.2002 SWX2019 SP4.0 HP Z440
|
erstellt am: 20. Jun. 2007 09:43 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
Sorry, aber ich kriegs nicht auf die Reihe. Bahnhof Mein "Text" sieht jetzt so aus: Dim swApp As Object Dim DrawingDoc As Object Dim ret As Boolean Sub main() Dim sBlatt As String Dim iBlattAnzahl As Integer sBlatt = "Blatt" iBlattAnzahl = 1 Set swApp = CreateObject("SldWorks.Application") Set DrawingDoc = swApp.ActiveDoc ret = DrawingDoc.SetupSheet4( _ sBlatt & iBlattAnzahl, _ swDwgPapersUserDefined, _ swDwgTemplateCustom, _ 0, _ 0, _ True, _ "\\fesesrv00003\solidworks\vorlagen\ohne fehlmann logo\a4ohnelogo.slddrt", _ 0.21, _ 0.297, _ "Standard") End Sub Wie ist das jetzt gemeint mit "Wenn du nur sBlatt (ohne iBlattAnzahl) als ersten Parameter der SetupSheet4 Methode übergibst, wird sich der Blattname nicht ändern" ?? (hoffe ich nerve hier niemand mit meiner Fragerei!) ------------------ Mit freundlichen Grüssen Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 20. Jun. 2007 09:49 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
Hallo Andi, immer locker bleiben und nicht die Nerven verlieren! So müsste es klappen (jedoch nicht getestet)
Code:
Dim oSwApp As SldWorks.SldWorks Dim oDrawingDoc As SldWorks.DrawingDoc Dim oSheet as SldWorks.Sheet Dim sBlatt As String Dim ret As BooleanSub main() 'SolidWorks Set oSwApp = GetObject(,"SldWorks.Application") 'Zeichnung Set oDrawingDoc = oswApp.ActiveDoc 'Blatt oSwSheet = oDrawingDoc.GetCurrentSheet 'Blattname sBlatt = oSwSheet.GetName ret = oDrawingDoc.SetupSheet4( _ sBlatt, _ swDwgPapersUserDefined, _ swDwgTemplateCustom, _ 0, _ 0, _ True, _ "\\fesesrv00003\solidworks\vorlagen\ohne fehlmann logo\a4ohnelogo.slddrt", _ 0.21, _ 0.297, _ "Standard") End Sub
------------------ Mfg Daniel Brauchen Sie Hilfe, sind Sie in Not? Wir retten Sie mit unserem Code! ------------------
SolidWorks | API | Tools | Schulung | Freeware | Schuler Design Automation GmbH [Diese Nachricht wurde von tbd am 20. Jun. 2007 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
A.Bumbacher Mitglied Konstrukteur
Beiträge: 120 Registriert: 16.12.2002 SWX2019 SP4.0 HP Z440
|
erstellt am: 20. Jun. 2007 10:02 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
Daniel vielen Dank!! Also, um meine Nerven musst du dir keine sorgen machen !! Es ist mir nur einwenig peinlich das ich hier eine Anfängerfrage nach der anderen stelle! Nun habe ich die Meldung: Objekt unterstützt diese Eigenschaft oder Methode nicht oSwSheet = oDrawingDoc.GetCurrentSheet (ist gelb markiert) ------------------ Mit freundlichen Grüssen Andi Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tbd Mitglied Teamleiter
Beiträge: 825 Registriert: 26.01.2006 Dell Percision T5400 Intel(R) Xeon(R) CPU X5460 @ 3.16GHz 3,25 GB RAM Nvidia Quadro FX 4600 ----- Win XP Prof SP 3 SW 2008 SP 5.0 PARTsolutions 8.1.08 Cideon SAP PLM 5.103.5.17 Visual Studio 2008
|
erstellt am: 20. Jun. 2007 10:22 <-- editieren / zitieren --> Unities abgeben: Nur für u.clemens
|