| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| PLM TechnologieForum Bamberg |
Autor
|
Thema: API: Opendoc6, options (266 mal gelesen)
|
Baumjäger Mitglied CAD/PDM Administrator
Beiträge: 339 Registriert: 21.06.2006 SW2017 - S5.0 AutoCAD Mechanical 2018 Win10 Intel Xeon E3-1240 V2 3,4GHz 16GB RAM NVIDIA Quadro 4000
|
erstellt am: 09. Mrz. 2009 15:37 <-- editieren / zitieren --> Unities abgeben:
Aloa, Über diesen Befehl kann man ja wunderschön ein Teil öffnen (ist sogar halbwegs schreibgeschützt ) swApp.OpenDoc6 Vorlage, swDocPART, swOpenDocOptions_ReadOnly, "", fileerror, filewarning. Jetzt möchte ich aber zusätzlich noch die Option ..._Silent mitgeben. Nur finde ich irgendiwe nicht heraus wie ich beide Optionen in den Befehl einfüge um das korrekt zum laufen zu bekommen. Kann mir da wer springen helfen? viele Grüße Andy 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: 09. Mrz. 2009 16:00 <-- editieren / zitieren --> Unities abgeben: Nur für Baumjäger
Hallo Andy, soweit ich mich erinnern kann, muss man bei VB6 und VBA ein Bitfeld mit einem AND zusammensetzen. Also einfach swOpenDocOptions_Silent AND swOpenDocOptions_ReadOnly als Parameter übergeben. Wenn es nicht klappt mal mit einem OR versuchen.
------------------ Mfg Daniel www.MySldWorks.de - SolidWorks API Snippets Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Baumjäger Mitglied CAD/PDM Administrator
Beiträge: 339 Registriert: 21.06.2006 SW2017 - S5.0 AutoCAD Mechanical 2018 Win10 Intel Xeon E3-1240 V2 3,4GHz 16GB RAM NVIDIA Quadro 4000
|
erstellt am: 09. Mrz. 2009 16:16 <-- editieren / zitieren --> Unities abgeben:
|
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: 10. Mrz. 2009 08:40 <-- editieren / zitieren --> Unities abgeben: Nur für Baumjäger
Hallo zusammen, Zitat: Original erstellt von Baumjäger: Seltsamerweise scheint "Or" das richtige zu sein aber das muss man ja zum Glück nicht verstehn :) .
Doch, das sollte man schon verstehen. Die ganzen Optionen sind bitcodierte Schalter: Code:
swOpenDocOptions_Silent = 1 swOpenDocOptions_ReadOnly = 2 swOpenDocOptions_ViewOnly = 4 swOpenDocOptions_RapidDraft = 8 swOpenDocOptions_LoadModel = 16 swOpenDocOptions_AutoMissingConfig = 32 swOpenDocOptions_OverrideDefaultLoadLightweight = 64 swOpenDocOptions_LoadLightweight = 128 swOpenDocOptions_DontLoadHiddenComponents = 256in Bitschreibweise (den Long mit seinen 32 Bitstellen auf die hinteren gekürzt) &x...0000 00000001 swOpenDocOptions_Silent = 1 &x...0000 00000010 swOpenDocOptions_ReadOnly = 2 &x...0000 00000100 swOpenDocOptions_ViewOnly = 4 &x...0000 00001000 swOpenDocOptions_RapidDraft = 8 &x...0000 00010000 swOpenDocOptions_LoadModel = 16 &x...0000 00100000 swOpenDocOptions_AutoMissingConfig = 32 &x...0000 01000000 swOpenDocOptions_OverrideDefaultLoadLightweight = 64 &x...0000 10000000 swOpenDocOptions_LoadLightweight = 128 &x...0001 00000000 swOpenDocOptions_DontLoadHiddenComponents = 256
Um also mehrere Flags übergeben zu können müssen die Werte addiert werden, das geht am einfachsten mit dem "+" Mit einem logischen ODER (OR) geht es natürlich auch, da die Werte eben bitcodiert sind. Mit AND kann es nicht funktionieren, da bei dieser Konstellation immer 0 rauskommt.Um also in deinem Beispiel ReadOnly und Silent gleichzeitig anzugeben kannst du folgendes schreiben:
- swOpenDocOptions_Silent + swOpenDocOptions_ReadOnly
- swOpenDocOptions_Silent OR swOpenDocOptions_ReadOnly
- 3
Um von SolidWorks Seite aus abzufragen, welche Flags denn nun gesetzt sind wird mit dem AND gearbeitet; um zu testen ob z.B. jetzt bei deiner Übergabe das readOnly gesetzt ist würde intern (3 AND swOpenDocOptions_ReadOnly), was nur dann nicht 0 wird, wenn eben das 2. Bit von rechts gesetzt ist. Das braucht aber uns Makroprogrammierer nicht weiter kümmern, aufgrund der cleveren bitcodierten Einstellungsschaltern können wir die Wert dafür einfach addieren. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Stefans SolidWorks Blog Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Baumjäger Mitglied CAD/PDM Administrator
Beiträge: 339 Registriert: 21.06.2006 SW2017 - S5.0 AutoCAD Mechanical 2018 Win10 Intel Xeon E3-1240 V2 3,4GHz 16GB RAM NVIDIA Quadro 4000
|
erstellt am: 10. Mrz. 2009 08:53 <-- editieren / zitieren --> Unities abgeben:
Hi, Danke für deine ausführliche Erklärung! Da habe/hatte ich wohl einen Denkfehler, ich hätte rein logisch AND mit + gleichgesetzt und Or mit ähm was anderem . Naja, wenn ich das nächste mal wieder drauf stoße wer ich mal sehen ob ich das jetzt wirklich verstanden habe bis denn Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |