Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Problem mit Makro mit 2015 und 2017

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
  
E-Book: Best Practises von Herstellern aus der Wohndesign- und Lifestylebranche
Autor Thema:  Problem mit Makro mit 2015 und 2017 (1447 mal gelesen)
Joshua63
Mitglied
Maschinenbautechniker


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

Beiträge: 371
Registriert: 08.11.2006

W10 SP1
Intel i7 8700K
Quatro P4000
32GB RAM
SW 2021 SP4.1
SWX PDM Professional 2021

erstellt am: 14. Jul. 2017 10:14    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 zusammen..........

ich habe ein Problem mir unserem Makro.

Folgendes Szenario:

Bisher lief es auch mit mehreren Versionen auf einem Rechner problemlos, jetzt nicht mehr.
Auf 2 Rechnern ist 2015 und 2017 installiert.
Hat der user Adminrechte geht das Makro mit beiden Versionen.
Hat er sie nicht, geht es nur mit einer Version.

User 1:
Führt er das makro in 2017 aus kommt die MsgBox-Meldung "Keine Datei geöffnet" und er öffnet ein SWX 2015.

User 2:
Ich hatte mich als Admin angemeldet und das Makro in 2017 ausgeführt um zu sehen ob es funktioniert.
Jetzt kann dieser User das Makro in 2017 ausführen, aber nicht mehr in 2015. Es kommt die gleiche Fehlermeldung.

Kann mir jamand sagen was da los ist ?

Hier der Codschnipsel am Anfang des Makros.

> Option Explicit
> Const swDocPART = 1
> Const swDocASSEMBLY = 2
> Const swDocDRAWING = 3
> ___________________________________________
> ' Hier werden die Dateinamen anhand ihres Formats dem Kunden zugeordnet.
> ' Trifft kein Kriteriun zu, wird das Auswahlmenü "Kundenauswahl" aufgerufen.
> ' Dort kann dann entschieden werden, ob man das Makro beenden will oder einen Kunden manuell auswählen möchte.
>
> Sub main()
>    Dim swApp As Object
>    Dim Model As Object
>    Dim iPos As Integer                    ' Variable für 1.
>    Dim vPos As Integer                    ' Variable für 2. Punkt Kunde1
>    Dim uPos1 As Integer                  ' Variable für 1. Unterstrich Kunde2
>    Dim uPos2 As Integer                  ' Variable für 2. Unterstrich Kunde2
>    Dim uPos3 As Integer                  ' Variable für 3. Unterstrich Kunde2
>    Dim uPos4 As Integer                  ' Variable für 4. Unterstrich Kunde2
>    Dim wPos1 As Integer                ' Variable für 1. Bindestrich Kunde3
>    Dim wPos2 As Integer                ' Variable für 2. Bindestrich Kunde3
>    Dim kPos As Integer                    ' Variable für Kaufteile
>    Dim instr As Integer
>    Dim fso As New FileSystemObject      ' Variablen für die Kaufteilerfassung
>    Dim oFolder As Folder
>   
>   
>  ' am Anfang Werte auf "0" setzen    iPos = 0
>    iPos = 0
>    vPos = 0
>    uPos1 = 0
>    uPos2 = 0
>    uPos3 = 0
>    uPos4 = 0
>    wPos1 = 0
>    wPos2 = 0
>    kPos = 0
>       
>  ' An das aktive Solidworks-Modell anklinken
>  ' ACHTUNG: falls kein Solidworks läuft, wird durch das CreateObject
>  ' eins geladen, was aber normalerweise nicht zu sehen ist, also
>  ' machen wir es doch im Zweifelsfall lieber sichtbar (sonst hängt zum
>  ' Schluß noch eins im Arbeitsspeicher rum und bereitet nur Scherereien)
>   
>    Set swApp = CreateObject("SldWorks.Application")
>    swApp.Visible = True
>    Set Model = swApp.ActiveDoc
>     
>  ' wenn nix geladen direkt wieder raus
>    If Model Is Nothing Then
>        Call MsgBox("Keine Datei" & vbNewLine & "  geöffnet", vbOKOnly + vbInformation + vbApplicationModal, "INFORMATION")
>        End
>    End If


LG

------------------
Viele Wege führen zum Ziel .......... und ich will alle wissen !

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

Eman1
Mitglied
Maschinenbau Ingenieur


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

Beiträge: 33
Registriert: 22.02.2007

SW 2016 SP4, WIN 7 X64, NVIDIA K2000D, INVENTOR 2010, PAC4SW, TOTAL COMMANDER 8.51

erstellt am: 14. Jul. 2017 10:27    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 Joshua63 10 Unities + Antwort hilfreich

Hallo Joshua,

Ersetze Set swApp = CreateObject("SldWorks.Application") mit Set swApp = Application.SldWorks.
Vielleicht hilft das.
Wenn mehrere Installation vorhanden sind dann muss man die version im class string mit angeben.

SW 2014
CreateObject("SldWorks.Application.22")
SW 2014
CreateObject("SldWorks.Application.23")

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

Joshua63
Mitglied
Maschinenbautechniker


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

Beiträge: 371
Registriert: 08.11.2006

W10 SP1
Intel i7 8700K
Quatro P4000
32GB RAM
SW 2021 SP4.1
SWX PDM Professional 2021

erstellt am: 14. Jul. 2017 15:46    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

Hi Eman1,

habe ich auch schon versucht, kein erfolg.

>Ersetze Set swApp = CreateObject("SldWorks.Application") mit Set swApp = Application.SldWorks.
>Vielleicht hilft das.

Da es bei mir klappt, und bei den beiden Usern nicht (mit Kreuzverhalten) macht mich etwas stutzig.
Scheint vielleicht etwas mit den Rechten zu sein........

Bisher gab es bei keinem Versionswechsel von SWX dieses Problem.

Grüßle

------------------
Viele Wege führen zum Ziel .......... und ich will alle wissen !

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

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


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

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 14. Jul. 2017 16: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 Joshua63 10 Unities + Antwort hilfreich

Hallo,

wir hatten das Problem schon immer, wenn mehrere Versionen installiert sind und die Benutzer keinen vollen Zugriff auf den Registryzweig haben.

irgendwo schreibt SWX rein, welche Version zuletzt gestartet wurde (mit Adminrechten), und die startet das Makro dann auch.

Dein Benutzer darf den Wert nicht verändern --> es wird die andere Version gestartet - und da drin ist keine Datei geöffnet.
probier mal die Versionen direkt mitzugeben.
Dann fehlt nur noch auszuwerten, welche Version der Benutzer laufen hat - ich glaub da gab es schon mal etwas hier ...

Gruß, Christian

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: 17. Jul. 2017 08:18    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 Joshua63 10 Unities + Antwort hilfreich

Hallo zusammen,

ich bin da bei Eman1, das hört sich sehr nach einem Durcheinander der Versionen an, und das hängt mit einem Registrykey namens HKEY_CLASSES_ROOT\SldWorks.Application zusammen.

Eine etwas ausführlichere Erklärung haben ich im Thread Makros starten zusätzlich SolidWorks versucht.

Das mit dem Umschreiben der Zeile sollte eigentlich funktionieren. Vielleicht ist die Änderung nicht durchgegangen. Du hast vermutlich das Makro auf einem zentralen Laufwerk liegen? Dann kann es durchaus sein, dass es jemand offen hatte, als du deine Änderungen durchgeführt und "gespeichert" hast, da kommt leider keine Warnmeldung, dass das Speichern nicht geklappt hat, wenn das jemand anders offen hat.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

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

Joshua63
Mitglied
Maschinenbautechniker


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

Beiträge: 371
Registriert: 08.11.2006

W10 SP1
Intel i7 8700K
Quatro P4000
32GB RAM
SW 2021 SP4.1
SWX PDM Professional 2021

erstellt am: 19. Jul. 2017 10:30    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 zusammen,

ich habe jetzt das Makro kopiert und geändert.

Ich hatte die Zeile in allen Formularen ein paar mal drin stehen >Set swApp = CreateObject("SldWorks.Application")< und habe alle durch >Set swApp = Application.SldWorks< ersetzt.

........ leider ohne Erfolg.

langsam verzweifle ich 

LG

------------------
Viele Wege führen zum Ziel .......... und ich will alle wissen !

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