| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | E-Book: Simulation für Hightech Innovationen |
Autor
|
Thema: Macro für revolved boss Feature (2984 mal gelesen)
|
GunnarHansen Mitglied Engineer
Beiträge: 752 Registriert: 16.09.2009
|
erstellt am: 02. Mrz. 2012 13:33 <-- editieren / zitieren --> Unities abgeben:
Mit einer planen Fläche markiert habe ich versucht ein Macro zu machen der Insert/Revolved Boss anwählt Sketch auf Normaler Sicht aufrichtet Bereit eine Konstruktions Linie zu machen. (Centerline) Aber wenn ich das Macro abspiele, kriege ich nur ein Sketch hervor. Ist zwar Normal aufgerichtet, aber Centerlinie muss ich selber anlegen. Und danach auch Feature Revolved Boss angreifen.... Geht das so nicht mit einem Macro? mfG Gunnar Anfänger. 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: 02. Mrz. 2012 14:02 <-- editieren / zitieren --> Unities abgeben: Nur für GunnarHansen
Hallo Gunnar, Zitat: Original erstellt von GunnarHansen: Mit einer planen Fläche markiert habe ich versucht ein Macro zu machen der [...] Aber wenn ich das Macro abspiele, kriege ich nur ein Sketch hervor. Ist zwar Normal aufgerichtet, aber Centerlinie muss ich selber anlegen. Und danach auch Feature Revolved Boss angreifen....Geht das so nicht mit einem Macro?
Es hört sich so an als willst du die Bedienung der Knöpfe automatisieren, nicht ein Makro schreiben, was die Linie zieht und daraus ein Feature erzeugt. Punkt 1: wie hast du das Makro gemacht, ich vermute per Makrorekorder? Dann solltest du wissen, das der Makrorekorder, sagen wir mal wohlwollend, seine Eigenheiten hat. Unter anderem die, dass er viele Dinge nicht oder nicht richtig aufzeichnet und nur selten dazu genutzt werden kann, allgemeingültige, vernünftige, saubere und wiederverwendbare Makros zu erzeugen. Punkt 2: wenn du die Bedienung automatisieren willst nimmst du nicht den Makrorekorder von SolidWorks, sondern Tools wie Auto-It. Aber vielleicht reichen dir ja auch schon einfache Makros mit Sendkeys, ein Beispiel findest du hier in einem alten API Tutorial, sollte auch heutzutage noch funktionieren. Wenn du per Makro die Features erzeugen willst musst du ganz anders denken, du musst dir aus der API Hilfe die Befehle für die Features raussuchen, dann überlegen was die brauchen und dich langsam durchhangeln, bist du alles an Objekten zusammen hast. Interaktive Eingaben während des Makroablaufs durch den Nutzer ist sehr schwierig bis unmöglich, so wie du dir das vorstellst geht es also nicht direkt, nur eben durch Knöpfchen-Automatisierung. Vielleicht geht es mit SldWorks::RunCommand und dem raussuchen der passenden Kommandos, aber das hab ich noch nie probiert. Ciao, Stefan PS: da die meisten hier in Deutschland mit einem deutschen SolidWorks arbeiten solltest du bei zukünftigen Fragen auch besser die deutschen Begriffe nutzen, das macht das Helfen leichter. Wär doch doof, wenn jemand dir nicht hilft, bloß weil er nicht weiß, was wohl ein Revolver-Boss ist ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GunnarHansen Mitglied Engineer
Beiträge: 752 Registriert: 16.09.2009
|
erstellt am: 02. Mrz. 2012 14:25 <-- editieren / zitieren --> Unities abgeben:
Hallo Stefan 1. Ja, ich habe Makrorecorder gebraucht. Danke für die Warnung! Das heisst recording ist nichts wert... Ich möchte einfach ein Paar Klicks einsparen. Nichts vollautomatisches. Die deutschen Menu Nahmen kenne ich leider nicht immer. Aber hoffentlich gehts trotzdem. Ich werde mir mal dein Link und deine Kommentare gut angucken. Danke und schönes Wochenende noch Gunnar Edit: das Link ist genau richtig. Los gehts. Ü's unterwegs! [Diese Nachricht wurde von GunnarHansen am 02. Mrz. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GunnarHansen Mitglied Engineer
Beiträge: 752 Registriert: 16.09.2009 Creo Parametric 9.0.5.0 Creo View 9.1 Windchill 12.1.0.3-6.0.0 Google Chrome Lenovo Thinkpad P15 3DConnexion Wireless SpaceMouse
|
erstellt am: 05. Mrz. 2012 12:54 <-- editieren / zitieren --> Unities abgeben:
Ich brauche Hilfe mit "sendkey". Bin da leider ganz Anfänger in sw. Habe jetzt in einem texteditor (Notesblok) folgenden .txt geschrieben: (Hier geklaut: http://solidworks.cad.de/apitut_kap01.htm ) Sub main() ' Wenn Sie das Makro aus SolidWorks heraus starten, muss vorher ' ein anderes Fenster den Focus haben, damit es funktioniert. ' Am einfachsten erledigen wir das mit einer Messagebox MsgBox "Makro geladen und bereit ..." ' AppActivate "SolidWorks 98Plus" SendKeys "%ibr^8l{TAB 2}c",True End Sub
Hier ist die Sendkey erklärung (Mein SW ist ja englisch): '% ALT 'i Insert 'b Boss 'r Revolve '^8 Normal Ansicht einrichten. (STRG und (die echte)8 gleichzeitig halten) 'l Line '{TAB 2} 'c Construction line Aber wie starte ich den "Sendkey" von Solidworks? Muss die Datei .exe oder .vbs oder .??? heissen? Muss/kann die Datei in C:\...\macros\ liegen. mfG Gunnar Edit: jetzt hoffentlich mit Line, construction Line angewählt. (l, TAB 2, c) [Diese Nachricht wurde von GunnarHansen am 05. Mrz. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GunnarHansen Mitglied Engineer
Beiträge: 752 Registriert: 16.09.2009
|
erstellt am: 06. Mrz. 2012 10:25 <-- editieren / zitieren --> Unities abgeben:
OK. Hab jetzt den .txt in .swb geändert. Placiert in c\...\macros. Ich kann ihn starten mit einer Taste vom Keybord. Leuft. Ich sage OK zur Box. Aber das Programm scheitert an: AppActivate "SolidWorks 98Plus" Was tun? Habe, ohne erfolg, versucht die Linie auszukommentieren, Solidworks 2011 statt 98Plus zu schreiben. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GunnarHansen Mitglied Engineer
Beiträge: 752 Registriert: 16.09.2009 Creo Parametric 9.0.5.0 Creo View 9.1 Windchill 12.1.0.3-6.0.0 Google Chrome Lenovo Thinkpad P15 3DConnexion Wireless SpaceMouse
|
erstellt am: 07. Mrz. 2012 15:37 <-- editieren / zitieren --> Unities abgeben:
Halloo Jetzt leufts aber fast immer... Manchmal Ein bischen zu schnell? Erklärung Teilweise in Englisch. Da mein SWX in englisch leuft.
Die Buchstaben im Macro müssen also übersetzt werden. Wer kann helfen??? Hab 4 ausgaben davon gemacht: 1. Revolve material weg (Cut) keybord: SHIFT+r 2. Revolve material auflegen (Boss) keybord: ALT+r 3. Extrudieren material weg (Cut) keybord: SHIFT+e 4. Extrudieren material auflegen (Boss) keybord: ALT+e Wenn ich also eine kontour Ausbohren will: Sketch Plan anwählen und SHIFT+r auf dem Keybord. Dann kommt man direct in den normal eingerichtetem Sketcher. Und er ist bereit die Zenterlinie zu machen! Und wenn man rausgeht ist das Material weggeschnitten. Spart mir um die 10 Mauseclicks. Es wäre gut, wenn ich das Program mit "Timer" langsamer machen könnte. Manchmal gehts zu schnell. Aber das hab ich noch nicht hingekriegt. Wer kann helfen??? Hier das Macro:
Dim swApp As Object Sub main() Set swApp = Application.SldWorks SendKeys "^8" '00. Plane normal to screen SendKeys "%" '10. ALT SendKeys "i" '20. Insert SendKeys "b" '30. b=Boss c=cut SendKeys "^8" '40. Plane normal to screen SendKeys "r" '50. r=Revolve e=Extrude SendKeys "t" '60. Tools SendKeys "k" '70. Sketch SendKeys "l" '80. Line SendKeys "{ESC}" '90. Esc SendKeys "{TAB 3}" '100. TAB x 3 SendKeys "c" '110. Construction Line End Sub Macro wieder hier vorbei
Use like this: Either: With a texteditor Save this txt as a .swb file and place in dir: "macros"
Or: Go to Tools > Macro > New. Save the macro at desired location Now replace the codes in that with following codes Save the macro and check. 'macros dir should be same place as the SLDWORKS.exe-file 'Before running from sldprt: select the Sketching plane first! 'In #tools#Costumize#keybord#Category#Macros chose a keybord 'shortcut 'Best regards Gunnar
'PS ' Why Esc line 90.? ' Strange but must be there to accept TAB next line) mfG Gunnar [Diese Nachricht wurde von GunnarHansen am 07. Mrz. 2012 editiert.] 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. Mrz. 2012 08:36 <-- editieren / zitieren --> Unities abgeben: Nur für GunnarHansen
Hallo Gunnar, das sieht doch gut aus und läuft bei mri auf meiner Büchse mit dem SW2011 x64 auf englisch umgestellt auch gut durch, eröffnet in einem neuen Teil auf einer vorgewählten Fläche eine Skizze, dreht die auf normale Ansicht und aktiviert die Konstruktionslinie zum malen. Ich hab es einen Tick angeändert, spart ein paar Zeile und wählt direkt die Konstruktionslinie an:
Code:
Sub main() SendKeys "%" '10. ALT SendKeys "i" '20. Insert SendKeys "b" '30. b=Boss c=cut SendKeys "r" '50. r=Revolve e=Extrude SendKeys "t" '60. Tools SendKeys "k" '70. Sketch SendKeys "n" '80. l=Line n=Centerline SendKeys "^8" '00. Plane normal to screen End Sub
Das "Normal auf" mach ich erst zum Schluss (bzw. ich würde es weglassen, aber ich skizzier auch in der 3D Ansicht), dass AppActivate hab ich weggelassen, das arbeitet zumindest bei mir auch stabil, wenn ich es aus SolidWorks heraus aufrufe.Ich binde das allerdings nicht per Tastaturshort über das macro-Verzeichnis ein, sondern über einen benutzerdefinierten Makroknopf, dem du auch einen Tasturkürzel zuweisen kannst, dafür kann aber das Makro liegen wo es will. Ist vielleicht Geschmackssache. Ach ja, das Makro sollte als SWP abgelegt werden, nicht als SWB, das gab es gaaaaaanz früher; da waren die SolidWorks Basic Macros reine Textdatei, seit der 2001Plus glaube ich waren es dann SolidWorks VBA Projects, also "richtige" VBA-Projekte. Die SWB werden zu Laufzeitbeginn immer automatisch zu SWP konvertiert, das kann durchaus zu Hängern oder auch Fehler führen, wenn es schon ein Makro mit demselben Namen als SWP gibt, dass im Zugriff ist. Zitat: Original erstellt von GunnarHansen: Es wäre gut, wenn ich das Program mit "Timer" langsamer machen könnte. Manchmal gehts zu schnell. Aber das hab ich noch nicht hingekriegt. Wer kann helfen???
Das verstehe ich nicht ganz, was meinst du mit zu schnell? Versuch es auch mal über den Makroknopf statt über reinen Shortcut, vielleicht liegt es daran.Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
GunnarHansen Mitglied Engineer
Beiträge: 752 Registriert: 16.09.2009
|
erstellt am: 09. Mrz. 2012 11:04 <-- editieren / zitieren --> Unities abgeben:
Hallo Stefan. Danke für die optimierung und Erklärungen! üs unterwegs. n=construktionslinie. Das war mir neu. Danke! Ich habe erlebt, dass nach mehreren Versuchen das Program nicht alles mitnehmt. Habe gedacht die tasten "werden zu schnell gedruckt vom Programm". Ein extra ^8 hat mir da geholfen..... Glaube ich jedenfals. Gibt es einen "Timer"? Ich werde den Macroknopf Tip mal versuchen. Wie sieht das aus mit den deutschen Kommandos/Buchstaben? mfg Gunnar
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. Mrz. 2012 11:42 <-- editieren / zitieren --> Unities abgeben: Nur für GunnarHansen
Zitat: Original erstellt von GunnarHansen: Wie sieht das aus mit den deutschen Kommandos/Buchstaben?
Code: Sendkeys "%ealxsmm{ENTER}"
Das zweite m (und das Enter dahinter zum Übernehmen) ist dafür notwendig, weil im Skizzenelementeuntermenu das m zweimal vergeben ist. Ich kann bei mir die Kürzel ganz einfach sehen, sobald ich die ALT-Taste drücke werden in den Menus die einzelnen Buchstaben, die auf die Shortcuts reagieren, unterstrichen, das macht das mit dem Raustüfteln für die Sendkeys viel einfacher Ciao, Stefan ------------------ Inoffizielle deutsche SolidWorks Hilfeseite http://solidworks.cad.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|