| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
| SPS |
Autor
|
Thema: API Fragen (922 mal gelesen)
|
KeepCat Mitglied CAE-Admin
Beiträge: 82 Registriert: 01.06.2004
|
erstellt am: 09. Feb. 2005 09:52 <-- editieren / zitieren --> Unities abgeben:
Moin moin SWX -Gemeinde hab da mal ein paar Fragen zu der VB-Programmierung mit SWX. OK, ok, vorab schon mal, es handelt sich eher um die Programmierung ansich, als um SWX, aber indirekt hat es ja damit zu tun: Frage 01: Was bedeutet das "public enum" ? Wozu wird das benötigt? Reicht es nicht aus, die Konstanten mittels "const" zu definieren? Frage 02: In der API-Hilfe gibt es ein klasse Beispiel, zum TIFF-Erstellen (=Save Document As TIFF Example (VB)). Bei der Analyse der einzelnen Befehle, frag ich mich, was die Zuordnung "&H1" bedeutet (siehe bei: swSaveAsOptions_Silent). Frage 03: In dem TIFF-Beispiel werden diversen Konstanten Zahlen zugewiesen (siehe bei: swTiffPrintDPI). Gibt es dazu eine Dokumentation, welche Werte, was bedeuten? Bin natürlich froh, das dieses Beispiel klasse funzt, aber möchte ich auch verstehen, was da passiert und warum. Hoffentlich kann mir eine helfen und Rat geben, oder ggf. sagen, wo ich meine Fragen beantwortet bekomme. Danke euch allen im voraus Gruß Thomas ------------------ Jeder ist zu etwas nütze, er kann immer noch als schlechtes Beispiel dienen 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: 09. Feb. 2005 10:53 <-- editieren / zitieren --> Unities abgeben: Nur für KeepCat
Hallo Thomas, gute Fragen, auf die sicher jeder in seiner "Programmiererlaufbahn" mal trifft. zu 1: unter Public Enum versteht masn eine öffentliche (public) Auslistung (enumeration). Diese Aufzählungen können dann im Code verwendet werden um eine Gruppe von Konstanten durchzureichen. Für einzelne Konstanten kannst du genauso gut Public Const schreiben zu 2: das &H davor bedeutet, das die Zahl als HEX-Zahl angegeben wird. &H1 bedeutet dasselbe wie einfach nur 1, aber gerade bei der bit-verschlöüsselten werten aus diesem Beispiel ist es einfacher, die als HEX anzugeben (also z.B. &H40 für swFileSaveWithRebuildError ) zu 3: in der API Hilfe stehen die Zuordnungen der Konstante zu ihren Werten, aber eine Doku, was wofür ist gibt es AFAIK nicht. Da muss man sich schon auf die Namen verlassen, die allerdings sehr gut beschreiben, welche Option oder Wert da gemeint ist. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KeepCat Mitglied CAE-Admin
Beiträge: 82 Registriert: 01.06.2004
|
erstellt am: 09. Feb. 2005 11:37 <-- editieren / zitieren --> Unities abgeben:
Danke Stefan bin nun etwas schlauer, aber ich bin ehrlich: Ich weiß nun was was ist, aber komme auch nur zu dem Entschluß: ... es ist eben so und gut ist ... Dennoch, danke für deine Bemühungen. Eine klitzekleine Frage zu 1: Wie soll ich dein Zitat verstehen : Zitat: Original erstellt von StefanBerlitz: Diese Aufzählungen können dann im Code verwendet werden um eine Gruppe von Konstanten durchzureichen.
Wie kann ich denn die Gruppe "durchreichen" ? Gruß Thomas
------------------ Jeder ist zu etwas nütze, er kann immer noch als schlechtes Beispiel dienen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 09. Feb. 2005 11:48 <-- editieren / zitieren --> Unities abgeben: Nur für KeepCat
"Durchreichen" heißt einfach an alle Module weiterleiten bzw. in allen Modulen deines Projekts verwenbar machen. Beispiel aus swConst.bas, dort steht: Code:
Public Enum swDocumentTypes_e swDocNONE = 0 ' Used to be TYPE_NONE swDocPART = 1 ' Used to be TYPE_PART swDocASSEMBLY = 2 ' Used to be TYPE_ASSEMBLY swDocDrawing = 3 ' Used to be TYPE_DRAWING swDocSDM = 4 ' Solid data manager. End Enum
Statt dessen könntest du meines Erachtens genauso schreiben: Code:
Public Const swDocNONE = 0 ' Used to be TYPE_NONE Public Const swDocPART = 1 ' Used to be TYPE_PART Public Const swDocASSEMBLY = 2 ' Used to be TYPE_ASSEMBLY Public Const swDocDrawing = 3 ' Used to be TYPE_DRAWING Public Const swDocSDM = 4 ' Solid data manager.
Funktionell besteht da wohl kein Unterschied, oder Stefan? Oder kann man die ganze Enum-Gruppe irgendwie ansprechen/verwenden? Ciao ------------------ Klaus Danke für deinen Besuch in meinem Gästebuch! www.al-ko.de privat... ForumsChat: Schau doch mal hier rein, wenn ihr Zeit habt... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KeepCat Mitglied CAE-Admin
Beiträge: 82 Registriert: 01.06.2004
|
erstellt am: 09. Feb. 2005 11:57 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von KMassler:
Oder kann man die ganze Enum-Gruppe irgendwie ansprechen/verwenden?
Genau DAS mein ich ! Denk mal irgendwie schon, denn es muß doch einen Sinn machen, das die ENUM - Gruppe einen Namen bekommen hat: Zitat: Public Enum swDocumentTypes_e
Gruß Thomas
------------------ Jeder ist zu etwas nütze, er kann immer noch als schlechtes Beispiel dienen 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: 09. Feb. 2005 12:08 <-- editieren / zitieren --> Unities abgeben: Nur für KeepCat
Hallo Thomas, ist so, wie Klaus das erklärt hat, wenn es nur um die Nutzung der Konstanten geht sind die beiden Deklarationen gleich. Mit dem Durchreichen mach ich mal in einem Beispiel anschaulicher, siehe Bild. Da wird dann auch noch ein anderer Vorteil im Editor klar, dass eben die "Gruppe" angesprochen werden kann. Wenn also eine Funktion weiß, dass es für einen bestimmten Parameter nur Konstanten aus der Gruppe swDocumentTypes_e annehmen darf, wird auch nur der im Editor angezeigt. Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
KMassler Ehrenmitglied V.I.P. h.c. CAD Admin + Mädchen für Alles...
Beiträge: 2675 Registriert: 06.11.2000 SolidWorks Start 1999 ** CSWP 01/2008 ** ------------------ Zuletzt beruflich: - SWX2020 SP5; - SAP/PLM+ECTR; - DriveWorks Pro; - Programmierung: VBA, aktuell Visual Studio 2022/VB.Net ------------------ ab 2024 (privat): Onshape und anderes
|
erstellt am: 09. Feb. 2005 12:37 <-- editieren / zitieren --> Unities abgeben: Nur für KeepCat
|
KeepCat Mitglied CAE-Admin
Beiträge: 82 Registriert: 01.06.2004
|
erstellt am: 09. Feb. 2005 14:07 <-- editieren / zitieren --> Unities abgeben:
Jo Baby Jo Klasse, DAS war es! Und wieder ist ein Programmierer ein wenig schlauer. Danke Jungs, echt klasse von euch. Gruß Thomas ------------------ Jeder ist zu etwas nütze, er kann immer noch als schlechtes Beispiel dienen Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Kalle Mitglied Student
Beiträge: 706 Registriert: 14.04.2002
|
erstellt am: 09. Feb. 2005 15:15 <-- editieren / zitieren --> Unities abgeben: Nur für KeepCat
Aheu, muss mich den Danksagungen anschließen. Hab wieder was gelernt. Und die ganze SWX-API-Geschichte ist schon wieder etwas klarer. Besten Dank für die Informationen. Bis dann, Kalle ------------------ ----------------------------------------- Es gibt immer mehr Lösungen als Probleme. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |