Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Makro für SpeedPack Aktualisierung b. Modellen mit Konfigurationen

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
  
CAD/CAM-Workshop in Suhl-Friedberg: SolidCAM + SOLIDWORKS
Autor Thema:  Makro für SpeedPack Aktualisierung b. Modellen mit Konfigurationen (2070 mal gelesen)
RotMilan
Mitglied
Technischer Zeichner, Stahl-/Maschinenbau


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

Beiträge: 164
Registriert: 09.01.2008

SWX Workgroup 2010 x64, SP 4.0
SWX Workgroup PDM Server 2009, SP 2.0

erstellt am: 09. Dez. 2008 09: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 zusammen,

vorne weg möchte ich erst mal anmerken, dass die beschriebene Funktion eine neue Funktion der Version 2009 ist.

Nun zum eigentlichen: nachdem hier auch oft über Makros diskutiert wird und ich nun gar keine Ahnung davon habe wollte ich mal Fragen ob es dieses Makro evtl. irgendwo schon gibt, bzw einer der versierten User hier sowas programmiert hat und evtl. weitergibt ;-)

Ich fühle mich zumindest nicht imstande so etwas selbst zu programmieren.

Problem:
Ich habe Dateien (Baugruppen) mit mehreren Konfigurationen. Von jeder Konfiguration gibt es auch ein SpeedPack. Diese SpeedPack-Konfigurationen müssen einzeln erstellt, und einzeln aktualisiert werden.
Nun bin ich vor allem auf der Suche nach einer Vereinfachung der Aktualisierung, bei der ich zum aktualisieren erst die Originalkonfiguration aufrufen muss, und danach erst die zugehörige SpeedPack-Konfiguration aktualisieren kann. Das ist manuell recht umständlich. Ebenso ist es beim erstellen. Aber das ist ja nur einmal zu machen, das aktualisieren kommt immer wieder mal vor - vor allem in der Entwicklungsphase.

Schönen Tag und frohes schaffen noch euch allen!

Gruß!

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

Thomas Liebezeit
Mitglied
Dipl.-Ing. Maschinenbau, CSWP


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

Beiträge: 114
Registriert: 01.07.2005

2007 SP5.0
2008 SP4.0
2009 SP3.0

erstellt am: 09. Dez. 2008 10:06    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 RotMilan 10 Unities + Antwort hilfreich


016554_SpeedPack_aktualisieren_2.zip

 
Hallo RotMilan,

anbei ein von mir modifiziertes Makro von Stefan Berlitz. Es durchläuft alle Konfigurationen und updated ein evtl. vorhandenes SpeedPack.
Habe es quick und dirty gemacht. Also teste es nochmal! Optional kannst Du deine Konfigs auch nochmal durchrechnen lassen.


Code:

' **********************************************************************
' Originalmakro von Stefan Berlitz! Erweitert um die Aktualisierung von
' SpeedPacks von Konfigurationen
'
' 09.12.2008    Thomas Liebezeit
'              Ich übernehme keinerlei Haftung für dieses Makro!
'
' Makro aktiviert nacheinander alle Konfigurationen und macht optional
' einen Rebuild dafür. Anschließend wird die vorher aktive Konfiguration
' wieder aktiviert.
' Kann hilfreich sein, um bei Problemen beim Speichern alle
' Konfigurationen eines Modells neu durchzurechnen.
'
' ACHTUNG:
' * Datei wird dadurch ggf. größer, vor allem bei vielen Konfs
'
' 26.11.2006 Stefan Berlitz
'            Stefan.Berlitz@solidworks.cad.de
'            http://solidworks.cad.de
'            http://swtools.cad.de
' **********************************************************************
' diese folgenden Werte können editiert werden
'
' RebuildFlag steuert, ob die Konfiguration neu durchgerechnet werden
' 0 = KEIN Rebuild
' 1 = normales Rebuild
' 2 = Fullrebuild

Const RebuildFlag = 0

' Definitions of typenames are consistent as in swconst.bas
Option Explicit
Const swDocPART = 1
Const swDocASSEMBLY = 2
Const swDocDRAWING = 3


Sub Main()

    Dim swApp As Object
    Dim ModelDoc As Object
    Dim ConfigNames As Variant
    Dim vConfigName As Variant
    Dim swConfig As Object
    Dim swConfiguration As Object
    Dim bRetVal As Boolean
    Dim sConfigName As String

    Dim OldConfig As Object
    Dim OldConfigName As String

    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc = swApp.ActiveDoc

    If ModelDoc Is Nothing Then
        ' Call MsgBox("Keine Datei geöffnet", vbOKOnly, "Information")
        Exit Sub
    End If
    '
    ' alle Dateieigenschaften aus der Konfiguration holen
    ConfigNames = ModelDoc.GetConfigurationNames
    Set OldConfig = ModelDoc.GetActiveConfiguration
    OldConfigName = OldConfig.Name

    ' alle Konfigurationen durchlaufen
    For Each vConfigName In ConfigNames

        Call ModelDoc.ShowConfiguration2(vConfigName)
        sConfigName = CStr(vConfigName)
       
        ' Config holen und updaten falls SpeedPack
        Set swConfiguration = ModelDoc.GetConfigurationByName(sConfigName)
        bRetVal = swConfiguration.UpdateSpeedPak()
       
        ' Rebuild
        Select Case RebuildFlag
        Case 1
            Call ModelDoc.EditRebuild3
        Case 2
            Call ModelDoc.ForceRebuild3(True)
        End Select

    Next

    ' und original Konfig wieder aktivieren
    Call ModelDoc.ShowConfiguration2(OldConfigName)

End Sub


Grüße,

Thomas

------------------

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

RotMilan
Mitglied
Technischer Zeichner, Stahl-/Maschinenbau


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

Beiträge: 164
Registriert: 09.01.2008

SWX Workgroup 2010 x64, SP 4.0
SWX Workgroup PDM Server 2009, SP 2.0

erstellt am: 09. Dez. 2008 10:20    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 is ja super  - jetzt muß ich nur noch rausfinden wie man das einbindet bzw. ausführt - aber das kann so schwer nicht rauszufinden sein (da gibts auch was in der Hilfe, soweit ich das gesehen hab). 

Was ich aber noch wissen müßte: nach aufrufen der Konfiguration (durch das Makro) - wird da erst mal die Zeichnung aktualisiert (Strg+Q)? Das wäre für mich wichtig, da das Modell sonst z.T. nicht richtig dargestellt wird.
Und dann gleich noch die Frage - man verzeihe sie mir - wo gibts denn ne gute Befehlsübersicht der Makrobefehle, damit ich das ein wenig nachvollziehen kann? In der Hilfe hab ich nix gefunden. 

Gruß + frohes Schaffen weiterhin

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

Thomas Liebezeit
Mitglied
Dipl.-Ing. Maschinenbau, CSWP


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

Beiträge: 114
Registriert: 01.07.2005

2007 SP5.0
2008 SP4.0
2009 SP3.0

erstellt am: 09. Dez. 2008 10:43    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 RotMilan 10 Unities + Antwort hilfreich

Hallo RotMilan,

also aufrufen kannst Du das Makro, indem Du den Anhang (eine .swb Datei) in SolidWorks über Extras -> Makros -> Ausführen startest. Wenn Du es bearbeiten willst einfach Extras -> Makros -> Bearbeiten wählen.

Die Hilfe zu den API Funktionen findest Du unter Hilfe -> API Hilfe.

Damit ein Rebuild gemacht wird einfach die Konstante ändern.

Code:

' RebuildFlag steuert, ob die Konfiguration neu durchgerechnet werden
' 0 = KEIN Rebuild
' 1 = normales Rebuild
' 2 = Fullrebuild

Const RebuildFlag = 0


Bin mir jetzt aber nicht ganz sicher, ob es notwendig ist. Wenn ja, dann sollte man den Code nochmal ändern. Im Moment wird erst das SpeedPack aktualisiert und dann die Konfiguration durchgerechnet (falls gewünscht, steuerbar über die besagte Konstante). Diese Abfolge sollte man ändern.

Grüße,

Thomas

------------------

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

RotMilan
Mitglied
Technischer Zeichner, Stahl-/Maschinenbau


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

Beiträge: 164
Registriert: 09.01.2008

SWX Workgroup 2010 x64, SP 4.0
SWX Workgroup PDM Server 2009, SP 2.0

erstellt am: 09. Dez. 2008 10:51    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

Coole Sache Thomas, vielen Dank! So sollte das funktionieren. 

Das durchrechnen ist unbedingt nötig! Muss ich jetzt manuell auch machen damits funzt!

In der API-Hilfe finde ich jedoch keine Befehlsübersicht... Gibts sowas irgendwo? 

Gruß und frohes Schaffen!

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

tbd
Mitglied
Teamleiter


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

Beiträge: 825
Registriert: 26.01.2006

Dell Percision T5400
Intel(R) Xeon(R) CPU
X5460 @ 3.16GHz
3,25 GB RAM
Nvidia Quadro FX 4600
-----
Win XP Prof SP 3
SW 2008 SP 5.0
PARTsolutions 8.1.08
Cideon SAP PLM 5.103.5.17
Visual Studio 2008

erstellt am: 09. Dez. 2008 11:17    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 RotMilan 10 Unities + Antwort hilfreich


Befehlsuebersicht.jpg

 
Hallo RotMilan,

alle aktuellen API Methoden, Eigenschaften und Ereignisse findest du im Register Inhalt im Bereich "SolidWorks API Help - APIs". Dort sind diese nach Themen und Klassen sortiert. Das Bild zeigt zum Beispiel die Eigenschaft SldWorks.ActiveDoc.

Ältere API Methoden findest du im Bereich "SolidWorks API Help - Obsolete APIs"

------------------
Mfg Daniel

www.MySldWorks.de - SolidWorks Api Snippets

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

Thomas Liebezeit
Mitglied
Dipl.-Ing. Maschinenbau, CSWP


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

Beiträge: 114
Registriert: 01.07.2005

2007 SP5.0
2008 SP4.0
2009 SP3.0

erstellt am: 09. Dez. 2008 11:26    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 RotMilan 10 Unities + Antwort hilfreich


016554_SpeedPack_aktualisieren_2.zip

 
Hallo RotMilan

habe den Code dahingehend geändert, daß erst ein Rebuild und dann das Speedpack aktualisiert wird.

Code:

' **********************************************************************
' Originalmakro von Stefan Berlitz! Erweitert um die Aktualisierung von
' SpeedPacks von Konfigurationen
'
' 09.12.2008    Thomas Liebezeit
'              Ich übernehme keinerlei Haftung für dieses Makro!
'
' Makro aktiviert nacheinander alle Konfigurationen und macht optional
' einen Rebuild dafür. Anschließend wird die vorher aktive Konfiguration
' wieder aktiviert.
' Kann hilfreich sein, um bei Problemen beim Speichern alle
' Konfigurationen eines Modells neu durchzurechnen.
'
' ACHTUNG:
' * Datei wird dadurch ggf. größer, vor allem bei vielen Konfs
'
' 26.11.2006 Stefan Berlitz
'            Stefan.Berlitz@solidworks.cad.de
'            http://solidworks.cad.de
'            http://swtools.cad.de
' **********************************************************************
' diese folgenden Werte können editiert werden
'
' RebuildFlag steuert, ob die Konfiguration neu durchgerechnet werden
' 0 = KEIN Rebuild
' 1 = normales Rebuild
' 2 = Fullrebuild

Const RebuildFlag = 2

' Definitions of typenames are consistent as in swconst.bas
Option Explicit
Const swDocPART = 1
Const swDocASSEMBLY = 2
Const swDocDRAWING = 3


Sub Main()

    Dim swApp As Object
    Dim ModelDoc As Object
    Dim ConfigNames As Variant
    Dim vConfigName As Variant
    Dim swConfig As Object
    Dim swConfiguration As Object
    Dim bRetVal As Boolean
    Dim sConfigName As String

    Dim OldConfig As Object
    Dim OldConfigName As String

    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc = swApp.ActiveDoc

    If ModelDoc Is Nothing Then
        ' Call MsgBox("Keine Datei geöffnet", vbOKOnly, "Information")
        Exit Sub
    End If
    '
    ' alle Dateieigenschaften aus der Konfiguration holen
    ConfigNames = ModelDoc.GetConfigurationNames
    Set OldConfig = ModelDoc.GetActiveConfiguration
    OldConfigName = OldConfig.Name

    ' alle Konfigurationen durchlaufen
    For Each vConfigName In ConfigNames

        Call ModelDoc.ShowConfiguration2(vConfigName)
        sConfigName = CStr(vConfigName)
       
        ' Rebuild
        Select Case RebuildFlag
        Case 1
            Call ModelDoc.EditRebuild3
        Case 2
            Call ModelDoc.ForceRebuild3(True)
        End Select
       
        ' Config holen und updaten falls SpeedPack
        Set swConfiguration = ModelDoc.GetConfigurationByName(sConfigName)
        bRetVal = swConfiguration.UpdateSpeedPak()

    Next

    ' und original Konfig wieder aktivieren
    Call ModelDoc.ShowConfiguration2(OldConfigName)

End Sub


Eine vollständige API Befehlsübersicht findest Du nur in der API Hilfe. Um aber einen schnellen Einstieg in die API Programmierung zu bekommen kann ich Dir das Buch "SDA-Schulung Objekte und Dokumente" unter http://www.schuler-da.eu/freeware.html empfehlen.

Grüße, Thomas

------------------

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

RotMilan
Mitglied
Technischer Zeichner, Stahl-/Maschinenbau


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

Beiträge: 164
Registriert: 09.01.2008

SWX Workgroup 2010 x64, SP 4.0
SWX Workgroup PDM Server 2009, SP 2.0

erstellt am: 09. Dez. 2008 11: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

Was ich suche ist mehr eine Gesamtübersicht. Aber das hilft mir auch weiter denke ich. Hatte sowas mal vor Urzeiten für TurboPascal  und fand das recht genial.

Vielen Dank Daniel für Deine Mühe mit dem Bild. 

Gruß + frohes Schaffen weiterhin!

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

RotMilan
Mitglied
Technischer Zeichner, Stahl-/Maschinenbau


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

Beiträge: 164
Registriert: 09.01.2008

SWX Workgroup 2010 x64, SP 4.0
SWX Workgroup PDM Server 2009, SP 2.0

erstellt am: 09. Dez. 2008 11:35    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

Super Thomas, vielen Dank auch Dir nochmal für die Mühe, werd mir das mit dem Buch evtl. mal überlegen, vielleicht gehts für die wenigen Sachen, die ich hab auch mit der Hilfe...

Gruß + frohes Schaffen weiterhin! 

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

gegy3
Mitglied



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

Beiträge: 300
Registriert: 26.04.2006

SolidWorks 2012 SP 5.0

erstellt am: 09. Dez. 2008 12: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 RotMilan 10 Unities + Antwort hilfreich

Du könntest das Makro auch noch auf ne Tastenkompination legen, dann musst es nicht immer über den
Menübefehl ausführen.

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