| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS | | |  | EMO 2025, eine Veranstaltung am 22.09.2025
|
Autor
|
Thema: VSB Marko - immer im Vordergrund - Befehl: Abwickeln (1735 mal gelesen)
|
Jörg H. Mitglied Ingenieur Sondermaschinenbau
 
 Beiträge: 376 Registriert: 11.03.2005 Core2Duo@4.2GHz 16 GB RAM Quadro FX1500 XP x64 SWX 2008 x64 Ansys 11
|
erstellt am: 20. Apr. 2009 12:11 <-- editieren / zitieren --> Unities abgeben:         
Guten Tag, Ich verwende zum ausfüllen der Properties, welche Hauptsächlich zur Steuerung von Schrifftfeld und Stückliste verwendet werden, eine VSB Marko. Basis dessen ist das bei der Makromania von Stefan Berlitz bereitgestellte Makro. Ich bin weder APL noch VSB-Erfahren und hab es damit doch ganz gut hinbekommen und es ist nun seid 3 Monaten Produktiv im einsatz. Zur Zeit hab ich jedoch zwei anliegen, welche das arbeiten damit erheblich vereinfachen würden, zu denen in jedoch in der Hilfe und im Forum keine passende Antwort gefunden habe. Los geht's: Wenn man ein Fenster eines anderen Programms anklickt, verschwindet das Makro hinter diesem und es wird nötig alle Fenster zu schliessen um es wieder zu finden. Eine Lösung wäre für mich entweder, dass es immer Vordergrund gehalten wird oder das es einen Reiter in der Windows Task-Leiste erhällt. Wie kann ich dies machen? Zweite Sache: Für die Stücklisten sind die Rohteilmaße erforderlich. Da es sich weitestgehend um einfache Teile handelt, komme ich hier mit dem Getbox-Befehl zurecht. Bei Blechteilen muss dieser auf die Abwicklung angewendet werden. Dazu klickt der User einmal auf "Abwickeln", startet das Makro welches automatisch die Abmaße holt, bestätigt diese und schliesst das Marko damit wieder und klickt Anschließend wieder auf "Abwickeln". Ich würde nun gerne das Abwickeln vom Marko ausführen lassen, damit man sich das zusätzliche geklicke sparen kann. Ich hoffe mir kann jemand einen Tipp geben, wie ich dies umsetzen kann. Vielen Dank im Vorraus, Jörg ------------------ Die größtmögliche Geschwindigkeit ist die Dunkelgeschwindigkeit, denn so sehr sich das Licht auch anstrengt, die Dunkelheit war schon vorher da. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jaro Mitglied Technischer Zeichner
 
 Beiträge: 235 Registriert: 28.11.2003 MDT6 SP4 SWX 2006 SP4.1 SWX 2007 SP3 XP SP2 3,6 GHz 2 GB NVIDIA Quadro FX 1400
|
erstellt am: 20. Apr. 2009 13:25 <-- editieren / zitieren --> Unities abgeben:          Nur für Jörg H.
Hallo, ich als VBA Noob hab das Abwickeln einfach mit dem Macro recorder aufgenommen. Option Explicit Dim swApp As Object Dim Part As Object Dim SelMgr As Object Dim boolstatus As Boolean Dim longstatus As Long, longwarnings As Long Dim Feature As Object Sub main() Set swApp = Application.SldWorks Set Part = swApp.ActiveDoc Set SelMgr = Part.SelectionManager boolstatus = Part.Extension.SelectByID2("Abwicklung1", "BODYFEATURE", 0, 0, 0, False, 0, Nothing, 0) Part.EditUnsuppress Part.ClearSelection2 True End Sub der entsprechende Befehl zum aufwickeln ist glaub ich part.Editsuppress
Gruß Roland
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jörg H. Mitglied Ingenieur Sondermaschinenbau
 
 Beiträge: 376 Registriert: 11.03.2005 Core2Duo@4.2GHz 16 GB RAM Quadro FX1500 XP x64 SWX 2008 x64 Ansys 11
|
erstellt am: 20. Apr. 2009 14:11 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Vielen Dank! Die Idee das ganze einfach mal mit der Aufzeichnungsfunktion zu ermitteln hatte ich noch garnicht... Jetzt muss ich nur noch herausfinden, wie man das Fenster auf "Always-on-Top" eingestellt bekommt. Grüße, Jörg ------------------ Die größtmögliche Geschwindigkeit ist die Dunkelgeschwindigkeit, denn so sehr sich das Licht auch anstrengt, die Dunkelheit war schon vorher da. 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: 20. Apr. 2009 14:48 <-- editieren / zitieren --> Unities abgeben:          Nur für Jörg H.
|
Olaf Wolfram Ehrenmitglied V.I.P. h.c. CAD-Mutti und Konstrukteur CSWP CSWI

 Beiträge: 2431 Registriert: 30.06.2008 I7-3770 CPU 3,40 Ghz 32 Gb RAM 64 bit WIN 10 SWX 2019 SP5 NVIDIA Quadro K2000<P> Lenovo ThinkStation
|
erstellt am: 20. Apr. 2009 14:48 <-- editieren / zitieren --> Unities abgeben:          Nur für Jörg H.
Hallo Jörg, ich glaube, es würde Dir helfen, wenn du Dir ein Icon für Dein Makro in eine Symboleiste bastelst! Am einfachsten geht das wenn du in einem geöffneten Dokument auf Extras , Anpassen gehst (oder RMT auf eine Symbolleiste und anpassen wählen) -Kategorie Makro wählen, -SchaltflächeMakro wählen und in die entsprechende, von Dir gewünschte Symbolleiste ziehen, Dann erscheint das Dialogfeld Makro Schaltfläche anpassen: hier kannst du ein Bild auswählen! Es kann sein, dass es bei der Größe des Bildes Einschränkungen gibt, ich bin mir nicht ganz sicher (BMP)!!!! guck mal in Deinem Installationspfad unter Data/User Makro Icons! Dann unter Vorgang noch das Makro auswählen was unter diesem Icon gestartet werden soll. That's it. Ich meine . das sollte dann funzen!! Gruß Olaf
------------------ ...strebe niemals nach den Dingen, die auch dümmeren gelingen..... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Olaf Wolfram Ehrenmitglied V.I.P. h.c. CAD-Mutti und Konstrukteur CSWP CSWI

 Beiträge: 2431 Registriert: 30.06.2008 I7-3770 CPU 3,40 Ghz 32 Gb RAM 64 bit WIN 10 SWX 2019 SP5 NVIDIA Quadro K2000<P> Lenovo ThinkStation
|
erstellt am: 20. Apr. 2009 14:50 <-- editieren / zitieren --> Unities abgeben:          Nur für Jörg H.
|
Jörg H. Mitglied Ingenieur Sondermaschinenbau
 
 Beiträge: 376 Registriert: 11.03.2005 Core2Duo@4.2GHz 16 GB RAM Quadro FX1500 XP x64 SWX 2008 x64 Ansys 11
|
erstellt am: 20. Apr. 2009 15:48 <-- editieren / zitieren --> Unities abgeben:         
Hallo, Ein Symbol hab ich dafür schon gehabt. Mir ist jedoch gerade aufgefallen, dass das Makrofenster auch wieder im Vordergrund erscheint, wenn man einfach noch mal auf das Symbol klickt... Das wäre zwar eine Lösung, aber noch nicht die, welche ich haben möchte. So startet mein Makro:
Zitat:
Dim swApp As Object Dim Model As Object Sub main()
' Öffnet API-Verbindung Set swApp = Application.SldWorks swApp.Visible = True swApp.UserControl = True ' Prüfung ob Datei geladen
Set Model = swApp.ActiveDoc If Model Is Nothing Then MsgBox "Keine Datei geladen" Exit Sub End If ' Abfrage Dateityp und startet entsprechendes Formular lngRetval = Model.GetType Select Case lngRetval
Case 1 frmTeil.Show Case 2 frmBaugruppe.Show Case 3 frmZeichnung.Show End Select End Sub
Beim Start des Fensters geht es dann so los: Zitat:
Private Sub UserForm_Initialize() Auslesen End Sub
Wie baue ich denn nun das zusätzliche Modul ein und bekomm dann mein Fenster gestartet? Entschuldigt bitte, dass ich so doof nachfrage. Bin wirklich kompletter Noob. Grüße, Jörg
------------------ Die größtmögliche Geschwindigkeit ist die Dunkelgeschwindigkeit, denn so sehr sich das Licht auch anstrengt, die Dunkelheit war schon vorher da. 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: 20. Apr. 2009 16:16 <-- editieren / zitieren --> Unities abgeben:          Nur für Jörg H.
Hallo Jörg, ach so, du willst, dass deine Fensterchen nur vor dem SolidWorks Fenster bleiben. Dann den Aufruf deiner Formular einfach den Paramter vbmodal mitgeben, dann bleiben die immer vor SolidWorks, sperren allerdings auch die weiterbearbeitung darin. Also frmTeil.Show vbmodal schreiben, vielleicht reicht das schon. 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 |
Jörg H. Mitglied Ingenieur Sondermaschinenbau
 
 Beiträge: 376 Registriert: 11.03.2005 Core2Duo@4.2GHz 16 GB RAM Quadro FX1500 XP x64 SWX 2008 x64 Ansys 11
|
erstellt am: 20. Apr. 2009 17:09 <-- editieren / zitieren --> Unities abgeben:         
Ne hilft leider nicht... Wir arbeiten hier auf zwei Bildschirmen. SWX läuft dabei auf dem angehängten Schirm. Das Makro startet auf der Mitte des Hauptschirmes auf dem in Vollbild das PDM läuft. Schaut man nun, meinetwegen eine Halbzeugnummer, im PDM nach, verschwindet das Fenster dahinter... Da es keine Taskleiste hat, muss man das PDM verkleinern um wieder dran zu kommen. Das mit dem auf dem Symbol klicken klappt leider auch nicht richtig... Geht nur von der VBA-Editor auf ist. Grüße, Jörg ------------------ Die größtmögliche Geschwindigkeit ist die Dunkelgeschwindigkeit, denn so sehr sich das Licht auch anstrengt, die Dunkelheit war schon vorher da. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
VBSpawn Mitglied Programmierer
  
 Beiträge: 514 Registriert: 23.08.2005 Sorgfältige Planung ersetzt niemals pures Glück.
|
erstellt am: 21. Apr. 2009 08:37 <-- editieren / zitieren --> Unities abgeben:          Nur für Jörg H.
Hi, so kannst du auch eine VBA Form immer onTop halten, wichtig ist dabei nur das Me.Caption eine 'relativ' eindeutige Überschrift enthält. Code:
Private Declare Function SetWindowPos Lib "user32" _ (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, _ ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long Private Const HWND_TOPMOST = -1 Private Const SWP_NOSIZE = &H1 Private Const SWP_NOMOVE = &H2Private Sub UserForm_Activate() Dim lngRetVal As Long Dim lhwnd As Long lhwnd = FindWindow(vbNullString, Me.Caption) lngRetVal = SetWindowPos(lhwnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE) End Sub
Gruß Micha ------------------ Stell dir vor, es geht, und keiner kriegts hin. Zitat: Interpunktion und Orthographie des Postings sind frei erfunden. Eine Übereinstimmung mit aktuellen oder ehemaligen Regeln wäre rein zufällig und ist nicht beabsichtigt.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |