Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  VSB Marko - immer im Vordergrund - Befehl: Abwickeln

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
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


Sehen Sie sich das Profil von Jörg H. an!   Senden Sie eine Private Message an Jörg H.  Schreiben Sie einen Gästebucheintrag für Jörg H.

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Jaro an!   Senden Sie eine Private Message an Jaro  Schreiben Sie einen Gästebucheintrag für Jaro

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jörg H. 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Jörg H. an!   Senden Sie eine Private Message an Jörg H.  Schreiben Sie einen Gästebucheintrag für Jörg H.

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jörg H. 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von Jörg H.:
Jetzt muss ich nur noch herausfinden, wie man das Fenster auf "Always-on-Top" eingestellt bekommt.

Das geht zwar auch einfach, aber nicht mit VBA/VB Bordmitteln, sondern per Windows API. Der API Call heißt SetWindowPos, Beispiel dafür, wie das in VB/VBA eingebunden wird siehe http://powerforen.de/forum/showthread.php?t=34340# 

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

Olaf Wolfram
Ehrenmitglied V.I.P. h.c.
CAD-Mutti und Konstrukteur CSWP CSWI



Sehen Sie sich das Profil von Olaf Wolfram an!   Senden Sie eine Private Message an Olaf Wolfram  Schreiben Sie einen Gästebucheintrag für Olaf Wolfram

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jörg H. 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von Olaf Wolfram an!   Senden Sie eine Private Message an Olaf Wolfram  Schreiben Sie einen Gästebucheintrag für Olaf Wolfram

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jörg H. 10 Unities + Antwort hilfreich

Hallo Stefan!

Da sind wir wieder im Synchronflug reingestürzt^^!

------------------
...strebe niemals nach den Dingen, die auch dümmeren gelingen.....

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Jörg H.
Mitglied
Ingenieur Sondermaschinenbau


Sehen Sie sich das Profil von Jörg H. an!   Senden Sie eine Private Message an Jörg H.  Schreiben Sie einen Gästebucheintrag für Jörg H.

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jörg H. 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Jörg H. an!   Senden Sie eine Private Message an Jörg H.  Schreiben Sie einen Gästebucheintrag für Jörg H.

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von VBSpawn an!   Senden Sie eine Private Message an VBSpawn  Schreiben Sie einen Gästebucheintrag für VBSpawn

Beiträge: 514
Registriert: 23.08.2005

Sorgfältige Planung ersetzt niemals pures Glück.

erstellt am: 21. Apr. 2009 08:37    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Jörg H. 10 Unities + Antwort hilfreich

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 = &H2

Private 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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz