| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS |
| |
 | Rohrleitungen in Maschinen und Anlagen mit Smap3D Plant Design & SOLIDWORKS, ein Webinar am 23.05.2025
|
Autor
|
Thema: Offset-Oberfläche Makro (1619 mal gelesen)
|
Klopfer195 Mitglied Konstrukteur

 Beiträge: 27 Registriert: 05.02.2019 SolidWorks 2019 SP5
|
erstellt am: 03. Sep. 2019 11:42 <-- editieren / zitieren --> Unities abgeben:         
Guten Morgen an alle Ich hätte mal eine Bitte an alle die sich ein wenig mit der Makro-Programmierung in SolidWorks auskennen. Und zwar hab ich mir überlegt ein Makro zu erstellen bei dem man, von bereits ausgewählten Flächen, ein Offset mit 0mm erstellt. Also Vorgehensweise wäre Flächen anwählen dann Makro starten und dann sollte der Offset Befehl fertig ausgeführt sein. Mit Makro aufzeichnen komme ich leider zu keinem Ergebnis. Wenn jemand Zeit und Lust hätte mir zu erklären wie ich den Offset Befehl in VBA ansprechen kann und diesem sagen kann das der Wert 0 sein soll wäre ich demjenigen sehr dankbar . Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2800 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 03. Sep. 2019 13:18 <-- editieren / zitieren --> Unities abgeben:          Nur für Klopfer195
Hallo, hast du dir mal das Beispiel "Create and Modify Move Face Feature Example (VBA)" oder die Methode "InsertMoveFace3 Method (IFeatureManager)" in der API-Hilfe angeschaut?
[EDIT] Sorry war beim falschen Befehl, dein Befehl müsste wohl eher "CreateOffsetSurface Method (IBody2/IModeler)" sein[/EDIT] [EDIT2] Wie es scheint ist das keine so einfache Aufgabenstellung wie ich dachte, hab jetzt schon ewig rumprobiert und irgendwie will das nicht klappen. Hätte dafür die Holzfällermethode im Angebot  Code: Dim swApp As SldWorks.SldWorksDim swModel As ModelDoc2 Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Sub main() Set swApp = Application.SldWorks Set swModel = swApp.ActiveDoc boolstatus = swApp.RunCommand(105, "") 'Startet den Befehl "Offstet Oberfläche" SendKeys "{TAB}" SendKeys "0" SendKeys "{ENTER}" boolstatus = swApp.RunCommand(1463, "") 'Command für RMB "OK" End Sub
Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  [Diese Nachricht wurde von bk.sc am 03. Sep. 2019 editiert.] [Diese Nachricht wurde von bk.sc am 03. Sep. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klopfer195 Mitglied Konstrukteur

 Beiträge: 27 Registriert: 05.02.2019 SolidWorks 2019 SP5
|
erstellt am: 04. Sep. 2019 07:48 <-- editieren / zitieren --> Unities abgeben:         
Ja super vielen Dank schonmal. Könntest du mir noch kurz erklären was "Dim swApp As SldWorks.SldWorks" und "Dim swModel As ModelDoc2" machen. Und wie hast du die Nummern herausgefunden die du mit RunCommand aufrufst? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2800 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 04. Sep. 2019 08:39 <-- editieren / zitieren --> Unities abgeben:          Nur für Klopfer195
Hallo Klopfer, mit der "Dim" Anweisungen kannst du eine Variable dimensionieren, also in den zulässigen Werten einschränken (was du wahrscheinlich schon weißt). An stelle von SldWorks.SldWorks / ModelDoc2 könntest du auch allgemein "Object" verwenden, was hier aber dann nicht weiter bestimmt wäre (würde aber auch Funktionieren). Durch das vorherige Deklarieren des bestimmten Objects funktioniert dann z.B. Intellisens, was dir beim Programmieren dann nur Methoden / Eigenschaften zu diesen speziffischen Object vorschlägt mit den dazugehörigen benötigten Variablen, dass macht es beim Programmieren einfacher da du die Methode / Eigenschaften nicht händisch eintippen musst sondern schön auswählen kannst und die benötigten Variablen angezeigt bekommst (siehe Bilder). Des Weiteren verwendet man diese Form (early binding) auch um den Code etwas leserlicher zu halten weil man gleich sieht was hier für ein Object erwartet wird. Für das ermitteln der CommandID hab ich ein Macro das die IDs aufzeichnet, viele stehen auch in der API-Hilfe aber eben nicht alle bzw. manche etwas kryptisch benannt. Die Methode mit RunCommand sollte aber eher vermieden werden, weil es wie oben schon geschrieben eher die Holzhammermethode ist ohne irgendwelche Absicherungen. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  [Diese Nachricht wurde von bk.sc am 04. Sep. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Klopfer195 Mitglied Konstrukteur

 Beiträge: 27 Registriert: 05.02.2019 SolidWorks 2019 SP5
|
erstellt am: 04. Sep. 2019 09:12 <-- editieren / zitieren --> Unities abgeben:         
Hm ok ich glaube es verstanden zu haben. Holzhammermethode ist für den Anfang erstmal ok für mich. Hauptsache es tut sich überhaupt etwas  . Ich beschäftige mich noch nicht wirklich lange mit VBA Programmierung und hatte mir dafür ein Buch gekauft das da heißt "Einstieg in VBA mit Excel", bin mir mittlerweile aber nicht mehr sicher ob das das richtige war um mit dem Thema anzufangen. Wie ist denn deine Meinung dazu? Lieber ein anderes Buch besorgen was Visual Basic außerhalb eines anderen Programmes behandelt oder ist das in Excel gar nicht so verkehrt? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
bk.sc Ehrenmitglied V.I.P. h.c. Konstrukteur Sondermaschinenbau

 Beiträge: 2800 Registriert: 18.07.2012 -Solid Works 2019 SP5 -Pro Engineer WF 3
|
erstellt am: 04. Sep. 2019 12:34 <-- editieren / zitieren --> Unities abgeben:          Nur für Klopfer195
Hallo, für den Einstieg ist das Buch glaube ich nicht verkehrt, weil hier hoffe ich auch die Grundlagen erklärt werden und diese sind ja auf SWX oder andere Programme dann übertragbar. Ein anderes Buch was direkt VB.NET behandelt wäre sinnvoll wenn du mal in Richtung Add-Ins gehen möchtest, VB.NET unterscheidet sich schon ein bisschen zu VBA, wenn du VB.NET aber kannst hast du mit VBA keine großen Probleme. Meine "Programmier"-Skills hab ich mir mit 30% "learning by doing", 50% Beiträge aus dieses Forum und 20% aus dem restliche www angeeignet. Tipp: Die SWX API-Hilfe mit seinen zahlreichen Beispielen ist dein Freund auch wenn diese ab und an etwas verwirrend sein kann. Gruß Bernd ------------------ --- Man muß nicht alles wissen, man muß nur wissen wo es steht --- Staatlich anerkannte Deutschniete  [Diese Nachricht wurde von bk.sc am 04. Sep. 2019 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |