Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro auto. mit SWX starten (/m): Falsches Sub wird gestartet

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
  
Zerspanungstreff mit SolidCAM bei der Hoffmann GmbH in Achim/Bremen
Autor Thema:  Makro auto. mit SWX starten (/m): Falsches Sub wird gestartet (814 mal gelesen)
red5000
Mitglied



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

Beiträge: 47
Registriert: 23.08.2011

Solidworks 2012 x64
Windows 7
Xeon W3565
Quadro 4000
RAM 12 GB

erstellt am: 05. Sep. 2014 10:05    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,
ich habe ein Makro geschrieben, dass mit Solidworks gestartet wird, damit ich u.a. beim Einfügen neuer Komponenten in Baugruppen bestimmte Eigenschaften dieser Komponenten prüfen kann.
Zum einen starte ich das Makro also per /m parameter über die Solidworks-verknüpfung.
Zum anderen benutze ich Events um beim ändern einer Konfiguration ein Sub zu starten.

Das Makro ist fertig und sollte wunderbar funktionieren... tuts aber nicht..
Wenn ich Solidworks über die Verknüpfung starte wird der falsche Sub ausgeführt wo zu diesem Zeitpunkt leere Objekte sind.
Kann ich irgendwo genau bestimmen welche Sub gestartet werden soll?
Meine Verknüpfung sieht so aus: "C:\...\SLDWORKS.exe" /m "G:\...\SolidWorks_Makros\CheckNewComps\CheckNewComps.swp"

Ausgeführt sollte dieser Sub:

Code:
Option Explicit

Public MyClass As New clsEvent

Sub Main()
    MyClass.MonitorSolidWorks
End Sub


Doch dieser wird ausgeführt (in einem anderen Modul)

Code:
Sub ConfigAuswahl()
    Dim swCompModel As SldWorks.ModelDoc2
    Dim swCustPrpMgr As SldWorks.CustomPropertyManager
    Dim vConfigNames As Variant
    Dim ValOut As String, ResValOut As String, sConfName As String
    Dim bRet As Boolean
    Dim x As Long, y As Long, lConfCount As Long

    Set swCompModel = swComp.GetModelDoc2
    vConfigNames = swCompModel.GetConfigurationNames
    lConfCount = UBound(vConfigNames)
    ReDim sArrValidConfigs(lConfCount) As String
    For x = 0 To lConfCount
        sConfName = vConfigNames(x)
        Set swCustPrpMgr = swCompModel.Extension.CustomPropertyManager(sConfName)
        bRet = swCustPrpMgr.Get4("Kennung1", False, ValOut, ResValOut)
        If ResValOut = "N" Then
            sArrValidConfigs(y) = sConfName
            y = y + 1
        End If
    Next x

    fConfigAuswahl.Show
End Sub


Das Makro hat übrigens in einer früheren Version funktioniert. Danach sind weitere Subs (u.a. die ConfigAuswahl()) und eine Userform dazugekommen. Kann mir aber nicht erklären wieso es jetzt nicht mehr funktioniert.
In dem Modul wo die ConfigAuswahl() ist, sind 2 weitere Subs und eine Funktion. Wenn ich die ConfigAuswahl() auskommentiere funktioniert das Makro, obwohl einmal die Userform_Initialize() gestartet wurde...
Hoffe ihr könnt mir helfen.

Gruß
red

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

Winni-two
Mitglied
Ing. Maschb.


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

Beiträge: 154
Registriert: 12.03.2010

SW 2021 SP5
Intel Xenon W2135 @3.7GHz
Win 10 64 bit
Graka: Nvidia Quadro P4000
32 GB Ram

erstellt am: 05. Sep. 2014 10: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 red5000 10 Unities + Antwort hilfreich

Wird normalerweise nicht die letzte SUB im Macro gestartet?

Gruß Winni

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

red5000
Mitglied



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

Beiträge: 47
Registriert: 23.08.2011

Solidworks 2012 x64
Windows 7
Xeon W3565
Quadro 4000
RAM 12 GB

erstellt am: 05. Sep. 2014 10:29    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,
das scheint tatsächlich das Problem zu sein. Hab eine neue Sub eingefügt und die wurde beim nächsten Start ausgeführt statt die Sub die Probleme macht. Aber wie lasse ich das Makro nun mit main() starten?
Habe versucht main() zu löschen, speichern, schließen, öffnen, main() wieder schreiben, speichern, schließen, öffnen und trotzdem wird wieder ConfigAuswahl() gestartet..

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

Winni-two
Mitglied
Ing. Maschb.


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

Beiträge: 154
Registriert: 12.03.2010

SW 2021 SP5
Intel Xenon W2135 @3.7GHz
Win 10 64 bit
Graka: Nvidia Quadro P4000
32 GB Ram

erstellt am: 05. Sep. 2014 10:31    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 red5000 10 Unities + Antwort hilfreich

Die Main Sub an das untere Ende des Macros schieben.

Gruss Winni

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

red5000
Mitglied



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

Beiträge: 47
Registriert: 23.08.2011

Solidworks 2012 x64
Windows 7
Xeon W3565
Quadro 4000
RAM 12 GB

erstellt am: 05. Sep. 2014 10:49    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

Das komische ist die Main() ist die einzige Sub im Modul. In meinem ersten Post ist alles was in diesem Modul drin ist zu sehen (5 Zeilen). Vielleicht sollte ich das Modul umbenennen, so dass es ganz unten steht? Die werden ja alphabetisch geordnet..
Habe mittlerweile eine etwas unschöne Zwischenlösung. Der ConfigAuswahl() wurde als einzige Sub in dessen Modul keine Parameter übergeben. Da habe ich nun einen dummy Parameter optional reingeschrieben.. Jetzt funktioniert es. Würde aber ungern in alle folgenden Subs dummy Parameter reinschreiben.
Kann man irgendwo genau einstellen welches Modul gestartet wird oder gibt es eine andere Lösung?

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