| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | | | 3DEXPERIENCE Conference 2024 | München |
Autor
|
Thema: API - Nummer für RMT-Befehl Toolbox Definition bearbeiten? (1360 mal gelesen)
|
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 14. Jul. 2009 17:08 <-- editieren / zitieren --> Unities abgeben:
Hallo, in Werkzeugkonstruktionen (z.B.Folgeverbundwerkzeuge) muß ich die Schrauben und Stiftlängen den jeweiligen Plattendicken anzupassen. Nun habe ich mir ein Makro geschrieben, das eine neue Konfiguration in der Toolboxschraube erzeugt und das entsprechende Längenmaß der Schraube ändert. Aber die Sache funktioniert nicht wirklich, weil die Konfiguration intern nicht den neuen "Schlüssel" für die "Partnumbers"-Tabelle bekommt sondern den alten behält. Dadurch kommt es später beim RMT-"Toolbox Definition bearbeiten" zu Fehlern in der Schraube (Längen stimmen nicht mehr mit der Konfigurationsbezeichnung überein!). Ich habe dafür aber keine Lösung. Eine anderer Weg wäre, die Toolbox-Komponente zu selektieren und den RMT-Befehl "Toolbox Definition bearbeiten" im Makro mit Code: Retval = swApp.RunCommand(????, "")
zu starten. Dann muß eben die neue Länge dort von Hand ausgewählt werden. Wäre auf alle Fälle sicherer. Nun die Frage: Welche Nummer hat der RMT-Befehl "Toolbox Definition bearbeiten"?Vielen Dank schon jetzt! Viele Grüße Thomas 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: 15. Jul. 2009 09:07 <-- editieren / zitieren --> Unities abgeben: Nur für Thomas5
Hallo Thomas, in der API Hilfe findest du die Beschreibung dazu (CommandID - SolidWorks command as defined in swCommands_e) mit einem direkten Link auf die laaaaange Liste der Numemrn mit ihren Symbolischen Konstantennamen ... ich hab 2899 für SW2009 SP2.1 gezählt. Du brauchst also nur in der langen Liste deine "Toolbox Definition bearbeiten" finden. Das machst du entweder, in dem du die Referenz zu Commands Library in ein Makro einbindest und dort den Objektkatalog aufrufst und durchschaust (siehe Screenshots). Alternativ kannst du bei mir auf der Seite z.B. auf http://solidworks.cad.de/mm_993.htm vorbeischauen, da hab ich die SolidWorks Constant type library und die Commands type library auch als einfach VB Basic Module zum runterladen, die kannst du dir in einem Texteditor anschauen und durchsuchen (halte ich für den einfacheren Weg). 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 |
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 15. Jul. 2009 11:53 <-- editieren / zitieren --> Unities abgeben:
Hallo Stefan, vielen Dank für Deine Antwort. Diese lange Liste habe ich schon von oben nach unten und von unten nach oben durchgesucht und vieles probiert. Nichts hat geholfen. Nur verschiedene Einstellungen an meinem SWX sind nun anders. Ich kenne nun etliche Befehle mehr, die ich sonst noch nie gebraucht habe. Aber der "Toolbox Definition bearbeiten"-Befehl ist mir nicht untergekommen. Vielleicht gibt es doch noch jemand hier in unserem endlosen Forum, dem ´mal zufällig dieser Befehl untergekommen ist. Ich wäre gaaaaaaaaanz seeeeeeeehr dankbar. Trotzdem nochmals vielen Dank an Dich, Stefan! Viele Grüße und frohes Schaffen... Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas5 Mitglied Konstrukteur, SWX-Admin
Beiträge: 420 Registriert: 14.07.2003 SWX2013
|
erstellt am: 16. Jul. 2009 10:07 <-- editieren / zitieren --> Unities abgeben:
Hallo, ich hab´ für´s erste eine Notlösung. Damit´s mit dem Makro was wird und ich wieder zum Konstruieren komme: Ich starte "Toolbox Definition bearbeiten", indem ich eben die Maus per API steuer. Das Beispiel unten funktioniert bei mir. Kann sein, daß ich das bei einer anderen Monitorauflösung anpassen muß. Dafür habe ich ja meinen Quelltext. Code: Option Explicit Private Declare Function SetCursorPos Lib "user32" (ByVal _ X As Long, ByVal Y As Long) As Long Private Declare Sub mouse_event Lib "user32" (ByVal dwFlags _ As Long, ByVal dx As Long, ByVal dy As Long, ByVal _ cButtons As Long, ByVal dwExtraInfo As Long)Const MOUSEEVENTF_LEFTDOWN = &H2 Const MOUSEEVENTF_LEFTUP = &H4 Const MOUSEEVENTF_RIGHTDOWN = &H8 Const MOUSEEVENTF_RIGHTUP = &H10 Dim swApp As Object Dim Part As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Part.ClearSelection2 True boolstatus = Part.Extension.SelectByID2("Socket Head Cap Screw_DIN-2@Einschraubtiefe", "COMPONENT", 0, 0, 0, False, 0, Nothing, 0) SetCursorPos 800, 200 'Cursor in Grafikbereich bringen Call mouse_event(MOUSEEVENTF_RIGHTDOWN, 0, 0, 0, 0) 'RMT drücken Call mouse_event(MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0) 'RMT loslassen SetCursorPos 850, 900 'Cursor auf "Toolbox Definition bearbeiten stellen Call mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) 'linke Maustaste drücken und Call mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) 'linke Maustaste loslassen-> Befehl startet End Sub
Viele Grüße! ThomasEine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|